Liquibase имеет атрибут failOnError, который можно установить в false на changeSets, который включает вызов, который может завершиться неудачей.
<changeSet failOnError="false">
<createSequence sequenceName="new_sequence"/>
</changeSet>
Это позволяет вам просто создать пользователя, создать последовательность, удалить пользователя и удалить последовательность changeSets, и если инструкция выдает ошибку, потому что их пользователи / последовательности существуют / не существуют, они все равно будут помечены как запущенные и обновление будет продолжаться.
Недостатком этого подхода является то, что он также будет помечать их как запущенные и продолжит работу, если они выдадут ошибку по какой-либо другой причине (неправильные разрешения, сбой соединения, неверный SQL и т. Д.). Более точный подход заключается в использовании предварительных условий, например :
<changeSet>
<preconditions onFail="MARK_RAN"><not><sequenceExists/></not></preconditions>
<createSequence name="new_sequence"/>
</changeSet>
В настоящее время нет предусловия userExists, но вы можете создать пользовательские предусловия или вернуться к предусловию. См. http://www.liquibase.org/documentation/preconditions.html для документации