数据库从oracle转换为mysql后,liquibase校验和错误

After database conversion from oracle to mysql, liquibase checksums are wrong

我们刚刚将数据库从 Oracle 转换为 mysql。所有数据都已转换,包括 DATABASECHANGELOG。

现在,当 运行ning liquibase 时,许多(不是全部)md5sums 与数据库中的不同。数据库中的数据来自 运行ning oracle 中的 liquibase 变更集,现在我们 运行ning 在 mysql.

我添加了几个变更集来更新 md5sums,这使我转到下一个有问题的变更集。这似乎是绝对的最后手段,我认为 liquibase 应该可以跨不同的数据库驱动程序工作,但可能不是这样。

例如,许多向数据库添加列的变更集 table 具有不同的 md5sum,但添加索引的变更集没有不同的 md5sum。我的阅读建议 Liquibase 基于变更集的与数据库无关的表示生成这些 md5sums;对吗?

此时重新运行所有液基不是一个实际的选择。

试试这个:

update databasechangelog set md5sum = null;

这将清除所有 md5sums,这些 md5sums 将在您下次 运行 liquibase 时重新计算。

根据我的阅读,liquibase 应该只使用 XML 来计算 md5sum,但显然还有其他事情正在发生 on.Good 运气!