gpt4 book ai didi

java - liquibase升级后如何解决liquibase校验和验证失败

转载 作者:搜寻专家 更新时间:2023-11-01 01:16:05 26 4
gpt4 key购买 nike

在我的项目中,我只是尝试将 liquibase 从 3.2.2 升级到 3.4.2(jar 和 maven 插件)。编辑:升级到 3.3.x 时相同。因此,现在启动应用程序会出现以下错误:

Caused by: liquibase.exception.ValidationFailedException: Validation Failed:
4 change sets check sum
src/main/resources/changelogs/xxx_add_indices_to_event_tables.xml::xxx-add_indices_to_event_tables::xxx is now: 7:0fc8f1faf484a59a96125f3e63431128

这是 50 个中的 4 个变更集,所有这些都添加了索引,例如:

<createIndex indexName="idx_eventtype" tableName="events">
<column name="eventtype" type="varchar(64)"/>
</createIndex>

虽然我可以在本地修复此问题,但在所有运行环境中手动修复这将是一个巨大的痛苦。这是一个错误,还是有一些解决方法?

最佳答案

您还可以使用 <validCheckSum> <changeSet> 的子标签将新校验和添加为有效校验和。

此外,请查看关于错误的评论 CORE-1950 .您可以将两个 liquibase 版本的日志级别设置为“调试”,看看是否可以在校验和创建的日志输出中找到差异。

像这样使用子标签

<changeSet id="00000000000009" author="system">
<validCheckSum>7:19f99d93fcb9909c7749b7fc2dce1417</validCheckSum>
<preConditions onFail="MARK_RAN">
<sqlCheck expectedResult="0">SELECT COUNT(*) FROM users</sqlCheck>
</preConditions>
<loadData encoding="UTF-8" file="users.csv" separator=";" tableName="users">
<column name="active" type="boolean" />
<column name="deleted" type="boolean" />
</loadData>
</changeSet>

您应该记住,validCheckSum 标记的值是变更集的新校验和。

关于java - liquibase升级后如何解决liquibase校验和验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34655157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com