我們使用Flyway 4通過Java API針對MySQL 5.6(不支持事務性DDL)。我們偶然遇到遷移失敗的情況,有時候會出現邏輯錯誤,有時候是因爲某人被數據庫弄得一團糟,而且事情並沒有處於正確的狀態。從schema_version刪除行是正確的做法嗎?
所以我想知道,在這種情況下,我們是否應該從schema_version
刪除行,並讓遷移重新運行,修復遷移或修復數據庫?我們通常在遷移之前運行修復以修復任何失敗的遷移,但是會添加一個新的遷移。
參見:Should I be worried about creating idempotent migrations while using Flyway?
你能否澄清你認爲是修復的弊端? –
@JohnAment當然。 '修復'在應用的校驗和中是不加區分的,它將重新對齊可用的校驗和。這可能會造成一種情況,即您正在維修的環境比您想象的要多(例如,如果另一個遷移發生了變化)。基本上你選擇了'validate'給你的所有保護。 – markdsievers