Welche alternativen Formate gibt es zu pg_dump zum Zwecke der Schemadifferenzierung?

Welche alternativen Formate gibt es zu pg_dump zum Zwecke der Schemadifferenzierung?

Wir speichern pg_dumpdas erstellte Schema-DDL in unserer Versionskontrolle.

Wir stellen fest, dass ein Vergleich pg_dumpder Ausgabe vor/nach der Anwendung von Migrationsskripten einen besseren Eindruck von den angewendeten Änderungen vermittelt.

Das Problem, das ich bei der Ausgabe habe, pg_dumpist jedoch, dass sich verwandte Objektänderungen überall in der Datei befinden. Sobald also eine Änderung vorliegt, die mehrere Objekte im Schema betrifft, wird es schwierig, verwandte Änderungen zu erkennen.

Ich frage mich, ob es alternative Formate gibt, in die ich Datenbankschemata einfach zum Zwecke der Differenzierung exportieren könnte. Ich denke beispielsweise darüber nach, psql zum Generieren einer ASCII-Tabellendarstellung von Objekten zu verwenden.

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

Antwort1

Das ist kaum eine Antwort auf meine Frage, aber ich werde dokumentieren, was ich herausgefunden habe:

Ich werde dies aktualisieren, sobald ich bessere Lösungen entdecke.

verwandte Informationen