我正在学习Jenkins和liquibase。我正在将它集成到用maven制作的java项目中。
在我的特定情况下,一旦将应用程序的一个版本发布到客户端,该应用程序将随SQL脚本一起提供以更新数据库。我无法提供changelog文件来使用liquibase进行更新,很多时候客户想要确切地看到对他们的数据库做了哪些更改。
我在Jenkins中创建了一个管道,每次使用应用程序版本创建Tag时,都会从git下载,编译,将已编译的二进制文件保存在云中,然后更新测试环境。这很有效。
现在在我的特定情况下,客户端会说:"我已经安装了应用程序的1.3版本,我想安装2.0。" 我必须能够为您提供SQL脚本来更新您的数据库。 使用liquibase解决这个问题的最佳方法是什么? 有没有人对此有任何建议?你知道其他任何工具吗? 抱歉我的英文。
答案 0 :(得分:2)
通过maven SQL Output目标使用updateSQL。
如果您按照以下方式整理更改邮件:
db.changelog.xml(所有changeSet)
release1 (文件夹)
db.r1.changelog.xml(release1 changeSets)
db.r1.changeset1.xml
db.r1.changeset2.xml
...
release2 (文件夹)
db.r2.changelog.xml(release2 changeSets)
db.r2.changeset1.xml
db.r2.changeset2.xml
......
您可以使用de maven命令生成一个SQL脚本,以便将数据库从 release1 更新为 release2 :
mvn liquibase:updateSQL
-Dliquibase.changeLogFile=db.r2.changelog.xml
-Dliquibase.properties=your-project.properties