一尘不染

Liquibase-校验和因不同的数据库供应商而异

sql

当我尝试在MSSQL和MySQL上运行Liquibase校验和时,我遇到了问题。

在我的基于MSSQL的数据库中,我有一个带有此校验和的changelog条目:

3:cf2f5de7a1dcc738bbc185e25fbcf6c9

当我对该数据库运行liquibase时,它工作正常。

然后,我将changelog条目复制到我的MySQL数据库中并尝试运行,并得到此错误:

myLiquibase.xml::1::Tobb is now: 3:cedf7a8ba54ea3f83141f79

我尝试null在MSSQL中将校验和设置为以重新生成校验和,然后校验和恢复为

3:cf2f5de7a1dcc738bbc185e25fbcf6c9

在MySQL中执行相同操作时,我得到以下校验和:

3:cedf7a8ba54ea3f83141f7987007deb7

因此,据我所见,根据它是在MSSQL还是MySQL中运行,Liquibase会生成不同的校验和。怎么会这样
我以为校验和仅取决于liquibase脚本的实际内容?


阅读 195

收藏
2021-03-08

共1个答案

一尘不染

是的,它取决于内容和 数据库类型 ,因为实际上校验和并不取决于您的changeset文本,而是取决于为当前数据库生成的 sql
,这对于不同的DB会稍有不同。

如果要避免校验和错误,可以validCheckSum在变更集中使用标记。

2021-03-08