web-dev-qa-db-fra.com

Comparez deux bases de données Postgres similaires pour les différences

Je télécharge occasionnellement des ensembles de données accessibles au public sous forme de dB Postgres. Ces jeux de données sont mis à jour/modifiés/développés au fil du temps par l'hôte du référentiel.

Existe-t-il une commande ou un outil Postgres (idéalement FOSS) qui peut montrer les différences entre une ancienne et une nouvelle base de données Postgres? (Une hypothèse de travail est que 95% des entrées sont inchangées et que les tables et les relations ne changent pas non plus).

14
CuriousGorge

Jetez un œil aux questions et réponses sur le débordement de pile, Comment vérifier la différence entre deux bases de données dans PostgreSQL? ; en particulier n autre outil de diff PostgreSQL (apgdiff) (comparaison de schémas uniquement). Apgdiff est recommandé par Alexander Kuznetsov - un auteur de livre de base de données publié et un peu un gourou.

Regardez aussi Liquibase ou Compare Database Table Data .

Il existe également des produits commerciaux - par exemple Différenciation de la base de données Altova avec DiffDog

10
Vérace

Il y a aussi:

2

Si vous avez besoin de quelque chose d'assez rapide et sale pour comparer les schémas, j'ai écrit ceci Gist pour aider à comparer un schéma en cours d'exécution à un "dernier" schéma - quelque chose peut-être hébergé dans SCM. Cela fonctionne assez bien pour un projet de ~ 50 tables.

0
Buddy