liquibase のクイックスタートに従って、チェンジセットを作成しました(非常に愚かです:))
コード:
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.6"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.6
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.6.xsd">
<changeSet id="1" author="me">
<createTable tableName="first_table">
<column name="id" type="int">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="name" type="varchar(50)">
<constraints nullable="false"/>
</column>
</createTable>
<createTable tableName="new_table">
<column name="id" type="int">
<constraints primaryKey="true" nullable="false"/>
</column>
</createTable>
</changeSet>
</databaseChangeLog>
クリーンなスキーマを作成し、migrateコマンドを起動しました。
Liquibaseは、サポートテーブルdatabasechangelogと..lockを使用してデータベースを作成しました。
どうすれば変更を追跡できますか?新しいcreateTable要素を追加して変更セットを変更しましたが、「update」コマンドを実行すると、liquibaseはこれを教えてくれます
Migration Failed: Validation Failed:
1 change sets check sum
だから私はリキベースを扱う方法を理解していないと思います。
誰かが私を正しい方向に向けるかもしれませんか?
ありがとう
この現在受け入れられている回答は、Liquibase 2.xでの変更に基づいて少し古くなっています。 2.xバージョンでは、変更セットのmd5チェックサムが変更されてもLiquibaseは失敗しますが、必要に応じてrunOnChange属性を指定できますそれを修正することができます。
ドキュメント から:
runOnChange-変更が初めて表示されたとき、および変更セットが変更されるたびに変更を実行します
基本的に既に行われている変更セットへの変更の場合は、データベースを手動で変更して、その変更セットのmd5が新しいデータベースと一致するようにすることができます。小さなテキストの変更に適しています。または、テーブルからそのチェンジセット行を削除することもできます。