【问题标题】:Erroneous md5sum failure for liquibase changeSetsliquibase changeSets 的错误 md5sum 失败
【发布时间】:2011-08-08 18:50:02
【问题描述】:

我们使用的是 liquibase 1.9.5,但我还没有将其视为该版本的已知错误。简短的故事是我们成功地为我们的 1.0 版本运行了 liquibase,但是在尝试运行具有额外变更集的 1.1 版本时,它错误地抱怨 1.0 变更集的 md5sum。

我们在短期内解决了这个问题,只是将 DATABASECHANGELOG 中的 md5sum 列清零,但我想知道我是不是做错了什么。

我们按如下方式组织我们的 liquibase: 我们在每次部署时都运行一个主 .xml 文件,其中仅包含针对我们软件的每个版本的单独文件的命令(以正确的顺序)

<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9 http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
    <include file="v1_0.xml" />
    <include file="v1_1.xml" />
</databaseChangeLog>

所以第一个版本只包含v1_0.xml,而我们刚刚推出的版本包含了我们上面的内容。

v1_0.xml 文件在不同版本之间没有变化,但在尝试为新版本调用 liquibase 时出现以下错误:

SEVERE: Validation Failed:
     1 change sets check sum
      v1_0.xml::foo_schema::bdeacon::(MD5Sum: ff63b8d1739e6cf1dcaed6a0ef585257)

有问题的变更集:

<changeSet author="bdeacon" id="foo_schema">
    <preConditions onFail="MARK_RAN">
        <not><tableExists tableName="some_table"/></not>
    </preConditions>
    <sqlFile path="database/initial/foo-schema.sql" />
</changeSet>

引用的 foo-schema.sql 文件在不同版本之间也没有变化。 (它为我们完成了整个数据库模式的初始创建,然后包括前提条件中提到的“some_table”。)

我希望 liquibase 不希望我们手动添加一个 validCheckSum 元素到版本之间的每个 changeSet...

【问题讨论】:

    标签: liquibase md5sum


    【解决方案1】:

    除非 changeSet 或 sql 文件的内容发生更改,否则您不需要添加 validCheckSum。

    在 foo-schema.sql 中是否存在诸如 SVN 版本号或空格/行结尾之类的内容可能会发生变化?

    【讨论】:

    • validCheckSum 技巧确实有效,但您是对的。 sql 文件中有一个外观变化,导致校验和失效。不是空白,但需要 svn diff 才能真正注意到它。
    【解决方案2】:

    您可以将“runOnChange”changeSet 属性设置为 true。在这种情况下,只要更改集引用的任何 sql 文件发生更改,该更改集就会再次运行,并且其校验和将被更新。请参阅 liquibase 文档中的 ChangeSet Check Sums 部分。当包/过程/触发器代码使用像“CREATE OR REPLACE”这样的语句时,它特别有用,在这种情况下,您不需要在调用 sql 文件之前使用 drop 语句来避免“..already exists”错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-29
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 2016-12-21
      • 2021-07-10
      • 2020-03-16
      相关资源
      最近更新 更多