为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

动漫人物 2024-01-28 17:23:06
我正在使用 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 值,它会像要求一样返回。因此校验和发生变化并引发错误。我尝试包括先决条件,但这也不起作用。有没有像这样的解决方法如果存在序列,则不检查校验和,也不创建新序列
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

作为解决方法,请尝试添加:

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

或者:

<validCheckSum>ANY</validCheckSum>

它应该使该changeSet的checkSum常量(或者在 的情况下不重要ANY),因此该changeSet将仅执行一次。



查看完整回答
反对 回复 2024-01-28
  • 1 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信