【问题标题】:Liquibase stuck on Computed checksumLiquibase 卡在计算校验和上
【发布时间】:2021-07-17 03:05:10
【问题描述】:

使用 Java/Spring 对 Snowflake 数据库运行 Liquibase。第一次部署工作正常,我让 Liquibase 创建 DatabaseChangeLogTable 和 DatabaseChangeLogLockTable。它们被创建、写入并创建数据库对象。

我第二次尝试运行它时,它会获取更改日志锁,但随后会在 liquibase.util 中长时间停留:计算 xxxx 的校验和。然后在 5 分钟后超时(由于其他配置设置)。如果我删除 DatabaseChangeLogTable 和 DatabaseChangeLogLockTable(以交互方式),并将锁定状态更新为 false,它会再次正常工作。当 DatabaseChangeLogTable 和 DatabaseChangeLogLockTable 已经存在时,为什么它似乎无法完成的任何想法?当我使用与 Liquibase 相同的凭据登录数据库时,我可以很好地选择和更新这些表。

【问题讨论】:

    标签: snowflake-cloud-data-platform liquibase


    【解决方案1】:

    您可以尝试使用 clearChecksums 吗? clearCheckSums 清除所有校验和并使 DATABASECHANGELOG 表的 MD5SUM 列无效,以便在下一次数据库更新时重新计算它们。已部署的变更集将重新计算其校验和,并将部署挂起的变更集。有关此方法的更多详细信息,请访问this link

    【讨论】:

    • 谢谢。我可以尝试在第一次运行时在最终脚本中将校验和列更新为 null,但我无法在此环境中访问命令行 liquibase 命令。无论如何,删除更改日志表会有效地清除校验和这一事实,我不确定这是否会有所帮助,但我会试一试。
    • 您也可以通过您的 java 代码清除校验和,您不一定需要通过 CLI 执行它。关于删除更改日志表不是一个好习惯。相反,应该首选清除校验和列。当然,请尝试一下,如果您遇到任何问题,请告诉我们。
    猜你喜欢
    • 2015-08-15
    • 2010-11-04
    • 1970-01-01
    • 2010-12-01
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多