PostgreSQL のスキーマ移行メカニズムを実装する必要があります。あいまいさを取り除くために: schema-migration とは、特定のサーバー インスタンスの現在の状態に関係なく、データベース構造を最新バージョンにアップグレードする必要があることを意味します。
たとえば、バージョン 1 でいくつかのテーブルを作成し、バージョン 2 でいくつかの列の名前を変更し、バージョン 3 で 1 つのテーブルを削除して別のテーブルを作成しました。私は複数のサーバーを持っており、そのうちのいくつかにはバージョン 1 とバージョン 3 などがあります。
私の考え:
- によって生成された出力のハッシュを生成します
pg_dump --スキーマのみ
データベーススキーマを変更する前に毎回。これは、将来、パッチを適用する必要があるデータベースのバージョンを特定するための信頼できる方法です。
- パッチのリストと、それらが適用されるハッシュが関連付けられたものを含みます。
- データベースをアップグレードする必要がある場合、現在のデータベース構造に対応するハッシュを検索するアプリケーションを実行し (ローカル データベースのハッシュを計算し、それを所有しているハッシュ セットと比較することによって)、関連するパッチを適用します。
- 次のハッシュが見つからなくなるまで繰り返します。
このアプローチの弱点を教えてください。