次の設定を考慮してください。
- 実動DB
- 新しい機能を有効にするためにスキーマの変更が行われるdev db
新しい機能の開発が完了したら、pg_dump --schema-only
両方のDBが同一になるまでprod dbスキーマを手動で更新する必要があります。このプロセスはエラーが発生しやすく、面倒です。
だから、私はできるツールを探しています:
- 2つのスキーマの違いの要約を表示し
diff
ます(など)。スキーマの単なるテキストの差分を探しているのではなく、「TableX
has a new columnY
」のような結論を導き出すことができるより精巧なツールを探していることに注意してください。 - あるスキーマを別のスキーマに変換するSQLコードを自動生成します(など
patch
)
2
diffを実行するのではなく、移行スクリプトを管理された方法で管理する必要があります。DBMSに対してアドホックDDLの変更を決して行わず、常に変更をスクリプト(バージョン管理システムに格納されている)に入れてから、スクリプトを適用します。LiquiBaseをまたはフライウェイのようなツールを検討
—
a_horse_with_no_name
@a_horse_with_no_nameありがとう。このアプローチを使用しても、diff / patchツールは私の生活を楽にします。ところで、私は歌を口ずさむことは仕方がない。
—
アダムマタン
pg_comparatorを試してみてください:pgfoundry.org/projects/pg-comparator(使用したことはありません)。LiquiBaseをも同様に差分を内蔵しており、私はより多くの制御スキーマ管理のための出発点は良いかもしれません間違えそうじゃない場合LiquiBaseをチェンジセットとして結果を発した
—
a_horse_with_no_name
ありがとう。投票できるように、回答として投稿してください。
—
アダムマタン