2017-01-23 88 views
0

我有使用liquibase定義數據庫遷移的spring引導應用程序。 當我啓動應用程序腳本時等待500s並檢查應用程序的http狀態。當它返回錯誤代碼腳本殺死應用程序進程並嘗試再次啓動應用程序時。 應用程序在啓動過程中遇害,liquibase不會從databasechangeloglock中刪除記錄。當應用程序下次運行時等待釋放鎖定,但它不會發生,並且應用程序一次又一次地被終止。應用程序崩潰時彈簧liquibase恢復

在日誌中每個應用程序最後一行是:

liquibase : Waiting for changelog lock.... 
liquibase : Waiting for changelog lock.... 

你有什麼想法如何解決內部腳本這個問題呢?

回答

1

Liquibase變化是由2個表,這將是在模式正被改變的控制:

1)http://www.liquibase.org/documentation/databasechangeloglock_table.html

2)http://www.liquibase.org/documentation/databasechangelog_table.html

你的更改不會運行,因爲databasechangeloglock表有鎖定列設置。您可以在再次啓動服務器/應用程序之前手動取消設置。

。哪家變更已經運行非常小心執行此操作之前

如果您確定更改集還沒有運行,你可以從兩個更改日誌表中刪除relavent行。