我们在maven项目中设置了liquibase脚本,我们使用liquibase maven插件在部署我们的软件时执行脚本。
我们需要确保只运行与所部署软件版本相关的liquibase脚本。
我已在liquibase中为每个变更集创建了一个自定义PreCondition,如下所示:
<preConditions onFail="CONTINUE">
<customPrecondition className="class.CompatibleVersion">
<param name="version" value="1.0.0"/>
</customPrecondition>
</preConditions>
当precondition版本参数为&gt;时,此preCondition会抛出CustomPreconditionFailedException。 deployedVersion。
不幸的是,只要它抛出CustomPreconditionFailedException而不是跳过更改集(onFail =&#34; CONTINUE&#34;),前提条件就会工作,maven插件失败并带有以下内容:
Error setting up or running Liquibase: Migration failed for change set src/database/changelog/db.changelog-1.0.1.xml::1.0.1_script1::fred.smith:
[ERROR] Reason:
[ERROR] db.changelog-master.xml : liquibase.precondition.CustomPreconditionWrapper@2add4d24 : liquibase.exception.CustomPreconditionFailedException: Change set version : 1.0.1 incompatible with deploy version : 1.0.0. Skipping change set. Precondition Error
这是我希望它抛出的异常,但由于onFail =&#34; CONTINUE&#34;我希望跳过更改集。
我错过了什么?
感谢。