報錯信息

image.png

問題解析

Liquibase無法獲取變更日誌鎖,因為它已經被另一個進程鎖定。這通常發生在應用程序異常關閉或數據庫連接中斷時,導致鎖沒有被正確釋放。

這是由於Flowable(基於Liquibase)在嘗試更新數據庫模式時無法獲得鎖導致的 錯誤的核心在於: liquibase.exception.LockException: Could not acquire change log lock. Currently locked by DESKTOP-KQ301O0 (192.168.1.5) since 25-12-11 上午11:21

解決方案

直接操作數據庫 清除Liquibase鎖。修改各種相關鎖表: act_co_databasechangeloglock act_fo_databasechangeloglock

-- 更新Flowable內容模塊的鎖狀態 UPDATE act_co_databasechangeloglock SET LOCKED = 0, LOCKGRANTED = NULL, LOCKEDBY = NULL WHERE ID = 1;

執行以下SQL語句來手動釋放鎖

-- 更新Flowable內容模塊的鎖狀態
UPDATE act_co_databasechangeloglock SET LOCKED = 0, LOCKGRANTED = NULL, LOCKEDBY = NULL WHERE ID = 1;

-- 更新Flowable表單模塊的鎖狀態
UPDATE act_fo_databasechangeloglock SET LOCKED = 0, LOCKGRANTED = NULL, LOCKEDBY = NULL WHERE ID = 1;

-- 如果還有其他類似的鎖表,也需要相應處理
UPDATE act_dmn_databasechangeloglock SET LOCKED = 0, LOCKGRANTED = NULL, LOCKEDBY = NULL WHERE ID = 1;
UPDATE act_cmmn_databasechangeloglock SET LOCKED = 0, LOCKGRANTED = NULL, LOCKEDBY = NULL WHERE ID = 1;
UPDATE act_de_databasechangeloglock SET LOCKED = 0, LOCKGRANTED = NULL, LOCKEDBY = NULL WHERE ID = 1;