2017-02-03 3 views
3

私はLiquibaseを使い始めたばかりです。なぜ私は./mvnw compile liquibase:diffを実行すると、既存のインデックスを削除してからそれらを再作成するのですか?Liquibaseは常にインデックスを作成/削除するためのチェンジセットを生成します

例: "怠惰" のうち、おそらく

<changeSet author="me (generated)" id="1486157347995-13"> 
     <dropIndex indexName="my_idx" tableName="notification"/> 
     <createIndex indexName="my_idx" tableName="notification"> 
     <column name="index_col"/> 
     </createIndex> 
</changeSet> 

答えて

2

これは、作成されたインデックスが、参照データベース内のインデックスと同じである(名前だけでなく使用される列も)ことを確認する簡単な方法です。

これは、1つに2つのdiffを例に処理:ターゲットDBに

  • 欠落しているインデックス名、
  • 同じインデックス名を、異なる定義を持ちます。
+0

ご迷惑をおかけして申し訳ありません。時間がある場合 - 別の質問:どのくらいの頻度で新しい変更履歴を生成する必要がありますか? DBに更新があるたびに?または、既存の変更履歴に新しいシーケンスや列を追加するなどの小さな変更を追加するだけでよいのですか?それは問題ですか?ありがとう! – Dayna

+0

個人的には、私はdiffを各リリースで生成します。それらは、バイナリに沿って成果物としてパッケージ化されています。 liquibaseは開発者のスキーマを直接ビルドして更新することができるため、開発中のdiffingはそれほど有用ではありません。 –

+0

ああ、そうです。大丈夫、ありがとう! – Dayna

関連する問題