dropwizard-migrations を使用して、liquibase を使用して postgresql データベースへの変更を追跡しようとしています。ゼロから再構築するのではなく、既存の本番データベースで移行を実行できるようにしたいと考えています。現在、ステージングでテストしています。前提条件付きの変更セットを作成しました。
<changeSet id="3" author="me">
<preConditions onFail="CONTINUE">
<not>
<sequenceExists sequenceName="emails_id_seq"/>
</not>
</preConditions>
<createSequence sequenceName="emails_id_seq" startValue="1" incrementBy="1" />
</changeSet>
私の目標は、シーケンスが既に存在する場合、変更セットの適用をスキップすることです。簡単に見えますが、機能していません。
ERROR [2013-09-13 22:19:22,564] liquibase: Change Set migrations.xml::3::me failed. Error: Error executing SQL CREATE SEQUENCE emails_id_seq START WITH 1 INCREMENT BY 1: ERROR: relation "emails_id_seq" already exists
! liquibase.exception.DatabaseException: Error executing SQL CREATE SEQUENCE emails_id_seq START WITH 1 INCREMENT BY 1: ERROR: relation "emails_id_seq" already exists
CONTINUE の代わりに MARK_RAN も使用してみました。それは運が悪い。