没有 MD5SUM 的 Liquibase 变更日志

Liquibase changelog without MD5SUM

我这里有一个使用 Liquibase 更新的数据库。如果我理解正确,Liquibase 将应用一个变更集并向 DATABASECHANGELOG table 写入一行,其中包含执行日期和 MD5 校验和。这样,Liquibase 可以找出变更集何时(意外地)发生变化。

但是,在此数据库中,许多(大多数)MD5SUM 条目是 NULL。我不知道为什么会这样。这是正常的操作模式吗?

当使用 Liquibase status 命令时,我看到许多 ‘未应用’ 变化。如果没有 MD5 和,Liquibase 如何确定?或者是否认为没有 MD5 和的变更集已更改。

有问题的 DATABASECHANGELOG 被两个不同的程序使用。这可能有问题,但过去工作得很好。

直到... 程序开始使用具有不同格式 MD5SUM 的不同版本的 Liquibase。检测到这一点后,Liquibase 将 NULL 写入整个列(这本身就有问题),从而删除所有其他程序的所有校验和。根据 Liquibase 运行的顺序,最后保留了不同的校验和集 NULL