我正在使用 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 的变更日志参数从外部 java 代码获取的。
第一次启动效果很好。在示例表中插入一些数据后,当我重新启动时,startValue 现在将是表的 max Id+1 值,它会像要求一样返回。
因此校验和发生变化并引发错误。我尝试包括先决条件,但这也不起作用。有没有像这样的解决方法
如果存在序列,则不检查校验和,也不创建新序列
慕哥6287543
相关分类