Например:
<changeSet author="user" id="1" >
<preConditions onFail="MARK_RAN" onError="HALT" onFailMessage="Table not exists!">
<tableExists schemaName="sm" tableName="test"/>
</preConditions>
<sql>
ALTER TABLE sm.test ADD test_column VARCHAR(100);
</sql>
<rollback>
ALTER TABLE sm.test DROP COLUMN test_column;
</rollback>
</changeSet>
Если таблица TEST не существует, и я буду запускать эту ликвибазу с update , тогда все будет в порядке, и в базе данных changelog будет записано:
# author exectype
user MARK_RAN
Но если позже буду запускать ликвибазу с откатом, то получу ошибку:
sm.test "не существует"
А можно больше контроля над условиями срабатывания отката?