Compare dos bases de datos de Postgres similares para las diferencias

14

Ocasionalmente descargo conjuntos de datos disponibles públicamente en forma de dB de Postgres. Estos conjuntos de datos son actualizados / modificados / expandidos con el tiempo por el host del repositorio.

¿Existe un comando o herramienta de Postgres (idealmente FOSS) que pueda mostrar las diferencias entre una base de datos Postgres ANTIGUA y NUEVA? (Una suposición de trabajo es que el 95% de las entradas no cambian y que las tablas y las relaciones tampoco cambian).

Garganta Curiosa
fuente
1
¿Qué terminaste usando? Ninguna de las respuestas realmente parece tener una solución.
nyov

Respuestas:

10

Eche un vistazo a las preguntas y respuestas sobre el desbordamiento de pila, ¿Cómo verificar la diferencia entre dos bases de datos en PostgreSQL? ; en particular, Otra herramienta de diferencias de PostgreSQL (apgdiff) (solo comparación de esquemas). Apgdiff es recomendado por Alexander Kuznetsov, un autor de libros de bases de datos publicado y un poco gurú.

Quizás también mire Liquibase o Compare Data Table Table Data .

También hay productos comerciales, por ejemplo, Altova Database Differenceing with DiffDog

Vérace
fuente
1
apgdiff no compara los datos de la tabla, metaqa se lanzó por última vez en 2008 y no funciona. La diferencia de la base de datos de liquibase no está orientada al caso de uso de los OP: "Diferencias de datos (limitadas), no verificadas por defecto"
nyov
2

También hay:

Comparar Postgres
fuente
1
pgdiff no compara los datos de la tabla.
nyov
0

Si necesita algo bastante rápido y sucio para comparar esquemas, escribí este resumen para ayudar a comparar un esquema en ejecución con un "último" esquema, algo que tal vez esté alojado en SCM. Funciona bastante bien para un proyecto de ~ 50 mesas.

compañero
fuente
No compara los datos de la tabla.
nyov
Eso estuvo bien para mis necesidades. Solo necesitaba comparar esquemas: los datos que contenía no eran tan importantes. Estoy seguro de que no está lejos de poder comparar datos si de alguna manera puede controlar el orden del volcado para que sea determinista en versioins / installs / etc.
Amigo
Está bien. Estaba frustrado porque nadie tenía una buena respuesta a la pregunta real (que dice específicamente "Una suposición de trabajo es que el 95% de las entradas no cambian y que las tablas y las relaciones tampoco cambian ".)
nyov