【问题标题】:After database conversion from oracle to mysql, liquibase checksums are wrong数据库从oracle转mysql后,liquibase校验和错误
【发布时间】:2018-11-30 22:01:54
【问题描述】:

我们刚刚将数据库从 oracle 转换为 mysql。包括 DATABASECHANGELOG 在内的所有数据都已转换。

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

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

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

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

【问题讨论】:

  • 让我知道这篇文章还有什么更好的地方。谢谢!

标签: java mysql database oracle liquibase


【解决方案1】:

试试这个:

update databasechangelog set md5sum = null;

这将清除所有 md5sum,下次运行 liquibase 时将重新计算这些值。

根据我的阅读,liquibase 应该只使用 XML 来计算 md5sum,但显然还有其他事情发生。祝你好​​运!

【讨论】:

  • 对!?我设置了一个 Mysql 和一个 oracle 数据库,并针对两者运行我的 java 应用程序。两者的 md5sum 相同,但是当针对 mysql 运行时,liquibase 抱怨大多数条目!
  • 由于未显示更改日志,这是推测,但如果更改集中的任何更改标记引用外部文件,则该文件的内容也用作校验和计算的一部分。
  • 感谢您的回复;就我而言,没有外部文件。
猜你喜欢
  • 1970-01-01
  • 2015-08-15
  • 1970-01-01
  • 2012-04-17
  • 1970-01-01
  • 2014-11-13
  • 2020-03-22
  • 2015-05-30
  • 2014-10-24
相关资源
最近更新 更多