2017-06-22 59 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數據庫