我正在学习 Jenkins 和 liquibase。我正在将它集成到一个用maven制作的java项目中。
在我的特定情况下,一旦应用程序的某个版本发布到客户端,该应用程序就会与 SQL 脚本一起交付以更新数据库。我无法提供变更日志文件以使用 liquibase 进行更新,很多时候客户希望准确了解对其数据库进行了哪些更改。
我在 Jenkins 中创建了一个管道,每次使用应用程序的版本创建标签时,都会从 git 下载它,进行编译,将编译后的二进制文件保存在云中,然后更新测试环境。这效果很好。
现在,在我的特定情况下,客户端会说:“我已经安装了该应用程序的 1.3 版本,并且我想安装 2.0。” 我必须能够为您提供 SQL 脚本来更新您的数据库。 使用 liquibase 解决此问题的最佳方法是什么? 有人对此有什么建议吗?您还知道其他任何工具吗? 对不起我的英语。
最佳答案
使用SQL Output通过maven updateSQL目标。
如果您像这样组织变更集:
db.changelog.xml (all changeSets)
release1 (folder)
db.r1.changelog.xml (release1 changeSets)
db.r1.changeset1.xml
db.r1.changeset2.xml
...
release2 (folder)
db.r2.changelog.xml (release2 changeSets)
db.r2.changeset1.xml
db.r2.changeset2.xml
...
您可以使用以下 maven 命令生成 SQL 脚本,将数据库从 release1 更新到 release2:
mvn liquibase:updateSQL
-Dliquibase.changeLogFile=db.r2.changelog.xml
-Dliquibase.properties=your-project.properties
关于java - 持续集成 - 数据库更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44688453/