PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 23/02/2022 19:24:42

maltebrun
Membre

Schema diff en ligne de commande

Bonjour,

Je gère plusieurs instances PostgreSQL en production, avec des instances de recette correspondantes. Des modifications fréquentes de structure font que les bases de recette ont besoin fréquemment d'être "réalignées" sur les bases de production telles qu'elles étaient à une certaine date, donc généralement sur un dump. Je recherche un utilitaire dédié à cette tache, capable de produire un jeu d'instructions SQL DDL qui, exécutées sur la base cible, la rendra identique en terme de structure à la base source. Je l’incluerai dans un script qui restaurera le dump, connectera l'utilitaire aux bases source et cible et exécutera sur la cible le jeu d'instructions fourni par l'utilitaire.

Dans les dernières versions de pgAdmin on trouve un outil pratique et puissant : Schema Diff.
Existe-t-il une version scriptable de cet outil ?

Il existe quelques outils semblables en cherchant un peu :

migra, en python :
https://github.com/djrobstep/migra

pgdiff en Go :
https://github.com/joncrlsn/pgdiff

Une autre solution en python :
https://github.com/Onapsis/pgdiff

Je voudrais savoir si dans la communauté PostgreSQLFr je pourrais profiter d'un retour d'expérience sur ce sujet, une solution à conseiller en particulier ?

Merci d'avance,

Michel

Hors ligne

#2 24/02/2022 12:56:33

gleu
Administrateur

Re : Schema diff en ligne de commande

Je ne connais pas ses outils. J'utilisais check_postgres pour connaître les différences de schéma mais il ne produit pas (à mon souvenir) de scripts SQL pour synchroniser les deux schémas.


Guillaume.

Hors ligne

#3 24/02/2022 13:17:09

rjuju
Administrateur

Re : Schema diff en ligne de commande

Il me semble que l'outil majoritairement utilisé est apgdiff (https://github.com/fordfrog/apgdiff ), qui semble également être le plus maintenu de la liste.

Hors ligne

Pied de page des forums