2017-06-22 60 views
0

我正在学习Jenkins和liquibase。我将它集成到一个用maven制作的java项目中。持续集成 - 数据库更改

在我的特殊情况下,一旦应用程序版本发布到客户端,应用程序将随SQL脚本一起提供以更新数据库。我无法提供更新日志文件来使用liquibase进行更新,很多时候客户希望看到对其数据库进行了哪些更改。

我在Jenkins中创建了一个管道,每次使用该应用的版本创建一个Tag时,它将从git下载,编译,将编译的二进制文件保存到云中,然后更新测试环境。这很好。

现在在我的特殊情况下,客户端将会说:“我已经安装了该应用程序的1.3版本,并且我想安装2.0版本。” 我必须能够给你SQL脚本来更新你的数据库。 用liquibase解决这个问题的最佳方法是什么? 有没有人对此有任何建议?你知道其他任何工具吗? 对不起,我的英文。

回答

2

使用SQL Output通过maven updateSQL目标。

如果您安排变更如下:

db.changelog.xml(所有变更)
release1(文件夹)
db.r1.changelog.xml(release1变更)
db.r1.changeset1.xml
db.r1.changeset2.xml
...
release2(文件夹)
db.r2.changelog.xml(release2变更)
db.r2.changeset1.xml
db.r2.changeset2.xml
...

您可以生成SQL脚本来更新

mvn liquibase:updateSQL 
-Dliquibase.changeLogFile=db.r2.changelog.xml 
-Dliquibase.properties=your-project.properties 
:使用去以下Maven命令从 release1release2数据库