如果应用程序崩溃(OOM /电源故障 /杀死-9)在Liquibase获得锁后,但是在释放锁之前,锁将永远保留在
databasechangeloglock
表中,我们需要手动将其删除。
我想知道是否有可能强制使用Liquibase进行应用:
databasechangeloglock
春豆。我假设我需要创建一些自定义棘手的@conditionalon ...注释
您可以使用
Serviceloader机制提供自己的
liquibase.integration.spring.SpringLiquibase
liquibase.lockservice.LockService
和
pg_try_advisory_lock
函数。当连接丢失时,锁会自动释放,从而使另一个连接获取。并尝试进行迁移。以下库支持以下数据库:
Mysql
mariadbpostgresql
HERE和HERHE
。那是相对较新的东西。 但是所接受的答案也很好!