3

我加入了在 Oracle DB 中开发和存储 plsql 源的项目。

有两个源副本 - 在测试服务器和生产服务器上。所以 SPOT(单点信任)规则被打破了。副本不时需要同步,并且此作业是手动执行的。

但最烦人的事情来自配置管理 - 我无法重现以前的工作项目副本,因为旧的 plsql 脚本丢失了(新版本的 API 发生了变化)。

研究完主题后,我发现了很棒的项目:https ://code.google.com/p/plsqlmaven

通过遵循https://code.google.com/p/plsqlmaven/wiki/Basics,我可以从 DB'es 转储所有 plsql 脚本(以及生产和测试之间的差异):

  $ mvn plsql:extract -Dforce

但我坚持使用plsql:deploy命令(它打印有关缺少 jar 的错误,我不明白如何创建它)。我会尽快联系作者并填写一些错误报告。

但我希望社区已经解决了这个项目活力的基本任务。

如何在 Java 项目中将 plsql 脚本部署到 Oracle DB(我的项目使用 Maven 构建系统)?

PS我在 oracle.com 上查看 SQL Developer 教程 - 我找不到如何通过一键单击来完全部署 plsql 文件层次结构。而且我更喜欢命令行解决方案...

PPS我向plsqlmaven项目报告相关错误:

PPPS我在http://rsdn.ru/forum/java/5011849.flat(俄语)上提问

4

4 回答 4

4

这是我喜欢使用flyway的情况之一,因为它可以让您管理版本和脚本。

它在测试时也很方便,因为它可以让您将数据库播种到给定状态。

于 2012-12-27T02:31:30.843 回答
2

旧的好 SQL Plus 怎么样?创建将根据需要调用其他人的主脚本,并将其从命令行传递到sqlplus(尽管您需要在机器上安装 Oracle 客户端)。jisql 是一个命令行 java sql 工具 - 但不要认为它有调用子脚本的选项。使用 exec 插件从 maven 运行命令相当容易。

于 2012-12-26T22:21:49.303 回答
1

我不会深入研究:

但似乎这些项目不仅为我的问题提供了解决方案,而且为其他相关问题提供了更复杂的解决方案。

两者都有 Maven 集成和开源。

于 2012-12-27T11:04:54.390 回答
1

你应该使用 plsql:compile 而不是 plsql:deploy:

mvn -Pyourdbprofile plsql:compile

ps:如果您需要一种部署存档的方法,请查看par 。

于 2014-04-23T13:04:11.360 回答