持续集成 - 数据库更改

时间:2017-06-22 01:00:33

标签: java jenkins continuous-integration liquibase sql-scripts

我正在学习Jenkins和liquibase。我正在将它集成到用maven制作的java项目中。

在我的特定情况下,一旦将应用程序的一个版本发布到客户端,该应用程序将随SQL脚本一起提供以更新数据库。我无法提供changelog文件来使用liquibase进行更新,很多时候客户想要确切地看到对他们的数据库做了哪些更改。

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

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

1 个答案:

答案 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