次の設定を検討してください。
新しい機能の開発が完了したら、両方のDBのpg_dump --schema-only
が同じになるまで、prod dbスキーマを手動で更新する必要があります。このプロセスはエラーが発生しやすく、面倒です。
だから、私はできるツールを探しています:
diff
など)。スキーマの単なるテキストの差分ではなく、「テーブルX
に新しい列Y
」のような結論を導き出すことができる、より複雑なツールを探していることに注意してください。patch
)スキーマはありますか diff / patch prodスキーマをより高度なdevスキーマに変換するのに役立つツールはありますか?
liquibase を使用します。
diff をサポートし、ゼロからデータベースを生成し、データベースにパッチを適用し、データベースをロールバックし、他の多くのものをサポートします。
以前は、すべてをリキベースを使用してXMLで記述する必要がありましたが、それ以上は必要ありませんでした。その99%を選択したSQL方言で記述できます。例:
--liquibase formatted sql
--changeset neil:1
create table contacts(
contact_id serial primary key,
name text not null unique
);
--changeset neil:2
alter table contacts add column phone_num text;
リキベースの変更ログはgitまたはwhat-have-youに保存する必要があります。