liquibase中的动态占位符配置会生成动态校验和

我正在将spring,liquibase与hsql数据库一起使用。我正在为一个表创建一个序列,比方说示例表。该序列将从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的changelog参数从外部Java代码获得的。

  

第一次启动工作正常。将一些数据插入后   示例表,当我重新启动startvalue时,现在将为最大Id + 1   表的值,则返回该值。

因此校验和改变并且抛出错误。我尝试包括前提条件,但那也没有用。有没有类似的解决方法

  

如果存在序列,请不要检查校验和,也不要   创建一个新序列

temp_0001 回答:liquibase中的动态占位符配置会生成动态校验和

要解决此问题,请尝试添加:

<validCheckSum>your-check-sum</validCheckSum>

或:

<validCheckSum>ANY</validCheckSum>

它应该使此changeSet的checkSum保持常量(在ANY的情况下应为非无关紧要),因此此changeSet将仅执行一次。

本文链接:https://www.f2er.com/3167608.html

大家都在问