我們的系統如何讓flyway重新運行遷移?
我們正試圖把移民作爲.sql文件版本控制之下。開發人員可以編寫一個VN __ * SQL文件,承諾版本控制和運行每5分鐘會自動遷移到一個開發和測試數據庫的工作。一旦變更證明不會導致問題,其他人就會運行手動工作來運行生產遷移。
我的問題:
我創建了幾桌演示遷移。我在我的PC上檢查了V4__DemoTables.sql進入版本控制。
在我們的Linux機器運行中提取從版本控制的新文件,每次5分鐘,然後跑了flyway.sh文件中的作業。它檢測到該文件並執行它。
但.sql文件有一個錯字。而且我們使用的Neteeza與flyway有問題,自動在BEGIN TRAN ... END TRAN中包裝遷移。所以遷移創建了2個表格,然後在第三個表格之前中止。
沒問題我以爲。我刪除了.sql文件創建的兩個表。檢查V4__版本控制,修正了錯字並重新提交。
五分鐘後提取的更新,但飛行用抱怨的校驗和不匹配。所以它不會運行更新的V4__DemoTables.sql文件。
如何獲得flyway接受更新的文件並在出現錯字時更新SCHEMA_VERSION文件中的校驗和?
閱讀文檔,似乎開發人員建議我應該使用修補程序創建一個新的V4_1_DemoTables.sql文件。但是這會與V4__文件中的命令相沖突,所以這看起來不對。
所以這是該文檔意味着我需要做的:
離開V4__作爲一個「成功」的遷移根據 SCHEMA_VERSION表。
創建V4_1_刪除是在V4__錯字 線之前創建的表。
創建V4_2_具有從原始文件錯字修復完成所有 真正的工作。
這是正確的嗎?
感謝您的快速回復。我不知道如何將前一行標記爲當前。 – 2012-07-24 22:23:41