我使用liquibase根據變更集生成SQL文件。但是,當我使用liquibase:updateSQL時,它在生成SQL文件之前沒有檢查前提條件。Liquibase:Migrate.sql不檢查預處理
我有一個先決條件說在創建表之前檢查表是否存在。
在這種情況下,即使存在表,「創建表SQL語句仍然正在生成」。
當我運行liquibase:更新目標,這個前提條件被正確檢查。
因此,在生成sql文件時,liquibase不檢查前提條件嗎?
謝謝。
我使用liquibase根據變更集生成SQL文件。但是,當我使用liquibase:updateSQL時,它在生成SQL文件之前沒有檢查前提條件。Liquibase:Migrate.sql不檢查預處理
我有一個先決條件說在創建表之前檢查表是否存在。
在這種情況下,即使存在表,「創建表SQL語句仍然正在生成」。
當我運行liquibase:更新目標,這個前提條件被正確檢查。
因此,在生成sql文件時,liquibase不檢查前提條件嗎?
謝謝。
你可能已經找到了答案了,但萬一這可能幫助:
http://forum.liquibase.org/topic/unexpected-behaviour-of-preconditions-with-updatesql
onSqlOutput =「TEST」爲前提屬性聽起來就像你在找什麼。
只要注意您編寫的前提條件或生成updateSQL時何時測試它們。依賴先前應用的補丁程序的先決條件可能在您的實例中尚未執行可能會導致錯誤。
希望它有幫助
可能有助於提供一些代碼。尤其是您允許其他人評估問題的先決條件。
我建議提高對liquibase項目的票。我猜先決條件很難呈現爲純粹的SQL。例如,該表可能存在於您的數據庫實例上,但可能在另一個表上缺失。當通過liquibase運行遷移時,它可以使用java檢查這種情況。基於SQL的解決方案大概必須在Oracle上生成PL/SQL,但在不支持存儲過程的數據庫上根本無法工作。有趣的問題。 –