假設需要將2列添加到表中並修改1.從純設計視圖中,我需要創建3個具有3個不同先決條件的變更集:存在2列,列1具有錯誤類型。有沒有辦法將liquibase中的變更集合起來?
這是明確的設計方法,但它導致3個單獨的更改表,這可能是非常昂貴的。例如,當添加或修改列時,MySql會複製或重建整個表。但它允許將幾個修改後的語句合併爲一個。但是一個變化的變化集合需要結合不可能的先決條件 - 我應該在其中一個是真的還是全部時進行大的改動?
那麼有沒有辦法從幾個先決條件中看到並僅從成功的前置條件構建改變表?
關於預設條件的說明:您通常應該僅僅依靠Liquibase的更改日誌跟蹤來了解是否已應用changeSet。先決條件有時是有用的,但是如果你完全依靠它們來確定應該執行什麼,那麼通常是一種「糟糕的代碼味道」,數據庫變化沒有被很好地控制。只要確保你使用前提條件來隔離檢查就可以恢復數據庫。 –