一种在Java项目中使用Maven构建工具部署plsql到Oracle的方法



我加入了在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的错误,我不明白如何创建它)。我将尽快联系作者并填写一些bug报告。

但是我希望社区已经为项目的生命力解决了这样的基本任务。

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

PS我看SQL开发人员教程在oracle.com -我找不到如何部署完全plsql文件层次结构一键点击。我更喜欢命令行解决方案…

PPS我向plsqlmaven project:

报告相关错误
  • https://code.google.com/p/plsqlmaven/issues/detail?id=4(需要将plsql文件部署到Oracle DB的教程)
  • https://code.google.com/p/plsqlmaven/issues/detail?id=5(请发布1.11到Maven中心)
  • https://code.google.com/p/plsqlmaven/issues/detail?id=6 (plsql:extract dump plsql code to src/main/java在1.10默认)

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

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

在测试时也很方便,因为它允许您将数据库种子设置为给定的状态。

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

我不做深看:

  • http://flywaydb.org
  • http://www.liquibase.org/

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

都有Maven集成和开源

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

mvn -Pyourdbprofile plsql:compile

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

最新更新