Considérez le paramètre suivant:
- Une DB de production
- Une base de données de développement, sur laquelle des modifications de schéma sont apportées pour activer de nouvelles fonctionnalités
Lorsque le développement d'une nouvelle fonctionnalité est terminé, je dois mettre à jour manuellement le schéma prod db jusqu'à ce que pg_dump --schema-only
les deux bases de données soient identiques. Ce processus est sujet aux erreurs et fastidieux.
Je recherche donc un outil qui peut:
- Affiche un résumé des différences entre deux schémas (comme
diff
). Notez que je ne cherche pas un simple diff textuel du schéma, mais un outil plus élaboré qui peut tirer des conclusions comme "Le tableauX
a une nouvelle colonneY
". - Générez automatiquement le code SQL qui convertirait un schéma en un autre (comme
patch
)
Existe-t-il un outil de diff / patch de schéma qui peut m'aider à convertir les schémas de production en schémas de développement plus avancés?
postgresql
schema
Adam Matan
la source
la source
Réponses:
Désolé de ressusciter une ancienne question
Récemment, j'utilise l' outil de gestion de base de données
0xDBEDataGrip de JetBrains.Il prend en charge plusieurs moteurs de base de données, dans l'excellent IDE Jetbrains, et une fonctionnalité clé que j'ai trouvée utile est la possibilité de
diff
2 tables (DEV et PROD).Ci-dessous, une capture d'écran du diff en action (dans ce cas, il n'y a qu'une seule différence de colonne). La capture d'écran est le résultat du bouton "Fusionner à droite" en haut, générant le SQL requis pour mettre à jour la bonne table.
J'espère que ce nouvel outil vous aidera.
la source
Database
menu de gauche , sélectionnez les 2 tableaux que vous souhaitez comparer (aveccmd/ctrl + click
), faites un clic droit et sélectionnezCompare
Utilisez liquibase .
Elle supporte diff , générer une base de données à partir de zéro, patcher une base de données, restaurer une base de données et un tas d'autres choses.
Avant, vous deviez tout écrire en XML avec la base de données, mais plus maintenant. Vous pouvez en écrire 99% dans le dialecte SQL de votre choix. Exemple:
Vous devez conserver vos changelogs de base de données dans git ou what-have-you.
la source