Oracle数据库,大型plsql代码管理

Posted

技术标签:

【中文标题】Oracle数据库,大型plsql代码管理【英文标题】:Oracle database, large plsql code managment 【发布时间】:2013-04-16 12:54:51 【问题描述】:

我正在做一个项目,其中业务逻辑是使用 plsql 在 oracle 数据库中实现的。代码库变得越来越大,它的管理正在变成噩梦。

例如,当代码库使用 Java、C#、...时,您有项目的版本控制系统,其中存储了历史记录,并且您正在使用分支、标签等管理项目。我不明白如何做到这一点使用直接存储在数据库服务器中的 pl/sql 代码。

我想知道在这种情况下,管理 plsql 代码库的最佳实践是什么?

【问题讨论】:

versioning stored procedures/PLSQL?的可能重复 【参考方案1】:

没有理由仅仅因为某些客户端工具默认以这种方式工作而只将 PL/SQL 存储在数据库中。

我强烈建议您选择自己喜欢的源代码控制系统并将 PL/SQL 源代码存储在其中。使用 all.sql 创建所有 PL/SQL 包和其他创建或替换对象。

请参阅versioning stored procedures/PLSQL? 了解另一种方法,但这需要更多的设置工作。

【讨论】:

什么工具可以离线开发plsql,无需连接数据库? 记事本?六?任何文本编辑器都可以,但有些带有语法高亮功能,例如 vim 和 UltraEdit。 没有理由不拥有多个用于开发的数据库——每个开发人员都可以拥有自己的数据库。请咨询您的 Oracle 销售代表,但许可证通常允许这样做。 一个很好的观点;另一种方法是为每个“角色”设置一个数据库。我们尝试有一个稳定的数据库供前端开发人员开发,而后端开发人员有一个稳定的前端数据库。【参考方案2】:

只需确保所有 PL/SQL 在应用到数据库之前都已在外部编写脚本,并将这些文件置于源代码控制之下。我选择的工具是 TortiseHG。

如果我的存储过程定义等存在的唯一位置是在数据库上,我会非常不高兴,部分原因与您提出这个问题的原因相同。

【讨论】:

同意。 c#/Java 和 PL/Sql 没有区别。使用外部源代码控制。我用svn。【参考方案3】:

我已经与 Oracle 合作了大约 20 年,但从未见过令人满意的代码管理系统在使用中。

然而,在过去的一年里,我一直在开发 Ruby on Rails 应用程序,分布式版本控制系统“git”由 gitflow 增强,以帮助形式化代码分支(master、develop、feature、hotfix 等)和部署使用 rake 进行的数据库 (PostgreSQL) 迁移。我真的希望我有机会将它们与 Oracle 代码一起使用,因为它确实满足了我需要的每一个条件。

【讨论】:

对于 Oracle 和 html/javascript 应用程序,我们正在与非常小的团队一起构建,我们使用 Subversion 和一些自制的构建和部署脚本。我想使用 make 重做构建/部署脚本。 Subversion 在分支和合并方面非常糟糕,所以我们不使用它来快速部署新版本。 这也是我对 Subversion 的(有限)体验。当然,分支应该很容易,合并的技巧应该归结为处理单个文件的差异,这更多的是我认为你更喜欢什么工具的问题。如果您需要更强大的分支管理功能,您可能希望查看 git 和 gitflow。我知道企业类型会反对它,但 github.com 也是一个非常方便的存储库服务。【参考方案4】:

我们构建了一个工具,以便我们可以在 Oracle 数据库中管理我们的 PL/SQL 代码。它将 Git 连接到 Oracle 数据库并帮助您轻松管理 PL/SQL 代码库。您可以执行基本的 Git 任务,例如提交、重置、分支、克隆、合并、拉取等……Gitora 会自动更新数据库中的 PL/SQL 代码。

您可以在www.gitora.com下载它

【讨论】:

我们最近发布了一个新版本,允许开发人员在两个数据库之间移动(使用 Git 术语)代码。

以上是关于Oracle数据库,大型plsql代码管理的主要内容,如果未能解决你的问题,请参考以下文章

使用PLSQL向oracle中导入dmp文件

PLSQL PHP:如何将大型 xml 数据从 PLSQL 函数获取到 PHP

从一起典型案例看Oracle数据库取证应注意的问题

请教如何利用PLSQL建oracle表,建表空间,设置管理,导入导出数据?

求教Oracle内存数据库timesten的使用

Oracle安装连接常见错误