Migration 液化-忽略旧变更集

Migration 液化-忽略旧变更集,migration,liquibase,Migration,Liquibase,我在酗酒方面遇到了麻烦。出于某种原因(我没有更改任何现有的变更集或其他东西),它试图应用已经在base中的变更集。因此,我得到的错误像“关系”表“已经存在” 我找到了这个标记-,但它似乎只用于变更集的新校验和。我想做的是,如果databasechangelog中存在一些校验和,则忽略一些变更集。例如,我尝试了f24567a5f86276f22cb8c5a8eddf25a4,但使用此校验和的迁移(在表databasechangelog中)仍然运行并失败 UPD:若我在空数据库上运行我的变更集,我可

我在酗酒方面遇到了麻烦。出于某种原因(我没有更改任何现有的变更集或其他东西),它试图应用已经在base中的变更集。因此,我得到的错误像
“关系”表“已经存在”

我找到了这个标记-
,但它似乎只用于变更集的新校验和。我想做的是,如果
databasechangelog
中存在一些校验和,则忽略一些变更集。例如,我尝试了
f24567a5f86276f22cb8c5a8eddf25a4
,但使用此校验和的迁移(在表
databasechangelog
中)仍然运行并失败


UPD:若我在空数据库上运行我的变更集,我可以看到校验和并没有改变。尽管如此,它还是尝试执行迁移,而迁移已经完成了一个非空数据库

更改更改集的逻辑时更改集的校验和(除了前提条件、上下文和有效检查之外的所有内容)。看看这篇文章

您可以执行命令。它将重新计算更改集的校验和,并将它们的值存储在
数据库更改日志
表中,从而解决您的问题


如果您不想在将来处理更改校验和,可以使用
any
,但这不是一个好主意,因为您正在查找更改集的完整性检查。

这就是问题所在-我没有更改任何更改集。我添加了一个新的变更集并更新了liquibase的版本。我还尝试在空表上执行我的变更集-校验和是相同的。但它仍然尝试运行数据库变更锁中已有的迁移。@Deninovac您从哪个版本升级到哪个版本的Liquibase?如果您从Liquibase 2移动到Liquibase 3,那么校验和的计算方式会发生变化,这可能与此有关。@JonBetts它是3.6.3到3.9.0。校验和看起来是一样的。我在空表上运行它,并看到与原始数据库中相同的校验和。