liquibase 中的动态占位符配置生成的动态校验和
Dynamic placeholder configuration in liquibase generated dynamic checksums
我正在使用 spring,liquibase 和 hsql 数据库。我正在为 table 创建一个序列,比方说示例 table。序列将从 liquibase 创建,如下所示
<changeSet id="xx" author="yy" dbms="hsql">
<preConditions onFail="MARK_RAN">
<not>
<sequenceExists sequenceName="example_id_sequence"/>
</not>
</preConditions>
<createSequence sequenceName="example_id_sequence" startValue="${hsql.exampleSequenceCount}" incrementBy="1"/>
</changeSet>
正如您在此处注意到的,序列的 startValue 是使用 liquibase bean 的更改日志参数从外部 java 代码获得的。
The first startup works fine. After inserting some data into the
example table, when I restart the startValue now will be max Id+1
value of the table, it is returned like that for a requirement.
因此校验和发生变化并抛出错误。我尝试包括前提条件,但也没有用。有什么解决方法吗
If there is a sequence present, don't check the checksum and don't
create a new sequence
作为解决方法尝试添加:
<validCheckSum>your-check-sum</validCheckSum>
或:
<validCheckSum>ANY</validCheckSum>
它应该使这个 changeSet 的 checkSum 常量(或者在 ANY
的情况下不重要),所以这个 changeSet 只会执行一次。
我正在使用 spring,liquibase 和 hsql 数据库。我正在为 table 创建一个序列,比方说示例 table。序列将从 liquibase 创建,如下所示
<changeSet id="xx" author="yy" dbms="hsql">
<preConditions onFail="MARK_RAN">
<not>
<sequenceExists sequenceName="example_id_sequence"/>
</not>
</preConditions>
<createSequence sequenceName="example_id_sequence" startValue="${hsql.exampleSequenceCount}" incrementBy="1"/>
</changeSet>
正如您在此处注意到的,序列的 startValue 是使用 liquibase bean 的更改日志参数从外部 java 代码获得的。
The first startup works fine. After inserting some data into the example table, when I restart the startValue now will be max Id+1 value of the table, it is returned like that for a requirement.
因此校验和发生变化并抛出错误。我尝试包括前提条件,但也没有用。有什么解决方法吗
If there is a sequence present, don't check the checksum and don't create a new sequence
作为解决方法尝试添加:
<validCheckSum>your-check-sum</validCheckSum>
或:
<validCheckSum>ANY</validCheckSum>
它应该使这个 changeSet 的 checkSum 常量(或者在 ANY
的情况下不重要),所以这个 changeSet 只会执行一次。