2012-12-14 43 views
2

我認爲文檔(http://flywaydb.org/getstarted/existingDatabaseSetup.html)不夠清晰,並且希望通過示例來說明說明。我有一個給你:使用Flyway自動遷移不同模式版本的數據庫

假設我們有兩個不同版本(1和2)的生產數據庫,它們的模式版本是隱式的,但是通過查詢現有的表來確定性的。那麼我們將如何實現文檔中描述的內容?

在我的例子中,兩個版本都具有附加腳本: 版本1:創建表格中的 版本2:創建表B中

我已創建的Java遷移文件匹配的版本1和2,但由於腳本flyway元數據丟失,我需要查詢數據庫腳本是否已經運行,並在這種情況下跳過它們。問題是由於Flyway尚未初始化,所以應用程序崩潰。

我不想從命令行初始化Flyway,因爲我希望在部署時自動完成(Flyway嵌入模式)。從我看到的這隻適用於空數據庫。 有沒有簡單的解決方案來解決這個問題?

回答

1

對於單PROD數據庫,你可以使用flyway.initOnMigrate

你的情況,你會包裝遷飛和通過檢查表和調用要麼flyway.initialVersion = 1或飛行用的init手動重新創建。 initialVersion = 2,然後調用遷移。

+0

謝謝!似乎足夠清楚。我想我也可以在實際的遷移課程中進行檢查,如果它已經運行就跳過升級腳本,對吧? – Alix