Liquibase具有failOnError属性,您可以在包含可能失败的调用的changeSet上将其设置为false。
<changeSet failonError="false"> <createSequence sequenceName="new_sequence"/></changeSet>
这使您可以拥有简单的创建用户,创建序列,删除用户和删除序列changeSet,并且如果该语句因用户/序列存在/不存在而引发错误,它们仍将被标记为已运行,并且更新将继续。
这种方法的缺点是,如果它们由于其他原因(错误的权限,连接失败,无效的SQL等)而出错,也会将它们标记为已运行并继续运行。更准确的方法是使用前提条件,例如:
<changeSet> <preconditions onFail="MARK_RAN"><not><sequenceExists/></not></preconditions> <createSequence name="new_sequence"/></changeSet>
当前没有userExists前提条件,但是您可以创建自定义前提条件或退回到该前提条件。有关文档,请参见http://www.liquibase.org/documentation/preconditions.html。



