スキーマの差分をとるための pg_dump の代替形式は何ですか?

スキーマの差分をとるための pg_dump の代替形式は何ですか?

pg_dump生成されたスキーマ DDL をバージョン管理に保存しています。

pg_dump移行スクリプトを適用する前と適用した後の出力を比較すると、適用されている変更をよりよく理解できることがわかります。

しかし、出力に関して私が直面している問題は、pg_dump関連オブジェクトの変更がファイル全体にわたっていることです。そのため、スキーマ内の複数のオブジェクトに影響する変更があった瞬間に、関連する変更を確認するのが難しくなります。

比較する目的でデータベース スキーマをエクスポートできる代替形式があるかどうか知りたいのですが、たとえば、オブジェクトの ASCII テーブル表現を生成するために psql を使用することを検討しています。

test=# \d+ question
                                                    Table "public.question"
    Column     |  Type   | Collation | Nullable |               Default                | Storage  | Stats target | Description
---------------+---------+-----------+----------+--------------------------------------+----------+--------------+-------------
 id            | integer |           | not null | nextval('question_id_seq'::regclass) | plain    |              |
 question      | text    |           | not null |                                      | extended |              |
 interest_id   | integer |           |          |                                      | plain    |              |
 slack_team_id | integer |           |          |                                      | plain    |              |
Indexes:
    "question_pkey" PRIMARY KEY, btree (id)
    "question_question_slack_team_id_idx" UNIQUE, btree (question, slack_team_id)
    "question_interest_id_idx" btree (interest_id)
    "question_slack_team_id_idx" btree (slack_team_id)
Foreign-key constraints:
    "question_interest_id_fkey" FOREIGN KEY (interest_id) REFERENCES interest(id) ON DELETE CASCADE
    "question_slack_team_id_fkey" FOREIGN KEY (slack_team_id) REFERENCES slack_team(id) ON DELETE CASCADE
Referenced by:
    TABLE "trivia_question" CONSTRAINT "trivia_question_question_id_fkey" FOREIGN KEY (question_id) REFERENCES question(id) ON DELETE CASCADE
Access method: heap

答え1

私の質問に対する答えにはなりませんが、私が見つけたことを文書化します。

より良い解決策が見つかったら、これを更新します。

関連情報