我们使用 Liquibase 作为云服务中的数据库重构工具,现在想用它来做一些轻量级的数据迁移,这将实现为 CustomTaskChange,只需几秒钟。这种数据迁移“很高兴”,但服务正常运行绝不是强制性的——如果它由于某种原因失败,则应该跳过更改集,尽管如此,服务仍会启动,并且在迁移期间重试更改集下次重新启动服务,直到它最终成功。因此,应该忽略执行更改集时的错误,但只有在实际成功运行一次后才标记为已运行。
我们想知道如何使用 Liquibase 实现这种行为:如果出现错误,该<changeSet>
属性将failOnError="false"
继续,但根据文档和 Nathan Voxland 在 StackOverflow 上给出的答案,它总是将更改集标记为已运行 - 因此 Liquibase 不会重试在下次启动服务时执行它。该<preConditions>
属性onFail
似乎只与失败的先决条件有关,因此在设置onFail
为CONTINUE
.
是否有任何其他我们忽略的选项/属性或推荐的方式来解决这种情况?