没有 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
。
我这里有一个使用 Liquibase 更新的数据库。如果我理解正确,Liquibase 将应用一个变更集并向 DATABASECHANGELOG
table 写入一行,其中包含执行日期和 MD5 校验和。这样,Liquibase 可以找出变更集何时(意外地)发生变化。
但是,在此数据库中,许多(大多数)MD5SUM
条目是 NULL
。我不知道为什么会这样。这是正常的操作模式吗?
当使用 Liquibase status
命令时,我看到许多 ‘未应用’ 变化。如果没有 MD5 和,Liquibase 如何确定?或者是否认为没有 MD5 和的变更集已更改。
有问题的 DATABASECHANGELOG
被两个不同的程序使用。这可能有问题,但过去工作得很好。
直到... 程序开始使用具有不同格式 MD5SUM
的不同版本的 Liquibase。检测到这一点后,Liquibase 将 NULL
写入整个列(这本身就有问题),从而删除所有其他程序的所有校验和。根据 Liquibase 运行的顺序,最后保留了不同的校验和集 NULL
。