¿Cuáles son los formatos alternativos a pg_dump a efectos de diferenciar el esquema?

¿Cuáles son los formatos alternativos a pg_dump a efectos de diferenciar el esquema?

Estamos almacenando pg_dumpel esquema DDL producido en nuestro control de versiones.

Descubrimos que comparar pg_dumpla salida antes y después de aplicar los scripts de migración da una mejor idea de los cambios que se están aplicando.

Sin embargo, el problema al que me enfrento con pg_dumpla salida es que los cambios de objetos relacionados se encuentran en todo el archivo. Por lo tanto, en el momento en que se realiza un cambio que afecta a varios objetos del esquema, resulta difícil ver los cambios relacionados.

Me pregunto si hay algún formato alternativo en el que pueda exportar esquemas de bases de datos simplemente con el propósito de diferenciarlos; por ejemplo, estoy considerando usar psql para generar una representación de objetos en una tabla ascii.

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

Respuesta1

Difícilmente sea una respuesta a mi pregunta, pero documentaré lo que encontré:

Actualizaré esto a medida que descubra mejores soluciones.

información relacionada