Salut,
Je cherche un logiciel qui permettrait de comparer 2 bases de données (soit directement les bases de données soit des fichiers DDL, soit -idéalement- un fichier DDL et une base de données existantes) et qui génèrerait les commandes SQL (en DDL) pour permettre de passer d'une version à une autre … et bien entendu de manière le plus intelligente possible.
Par exemple, si on ajoute une colonne dans une table, ne pas faire un DROP TABLE puis un CREATE TABLE mais un ALTER TABLE.
J'ai trouvé quelques logiciels commerciaux que nous sommes en train d'évaluer mais j'aurai préféré un logiciel libre ou Open Source … et là je n'en ai trouvé aucun.
Merci d'avance
# Type de la base de données
Posté par lann . Évalué à 1.
Est ce une base de données de type mysql.
Si c'est le cas, essayer de faire un dump des bases de données et les comparer
# Quel SGBD ?
Posté par Nanawel (site web personnel, Mastodon) . Évalué à 3.
Si c'est du Postgres, tu as de la chance car pgAdmin propose ça : https://www.pgadmin.org/docs/pgadmin4/6.18/schema_diff.html
Sinon il y a DBeaver, mais évidemment si l'édition Community est libre/gratuite, cette fonctionnalité n'en fait pas partie et est réservée à l'édition Enterprise…
# Pas libre : sqlyog
Posté par mikael.desharnais . Évalué à 3.
Bonjour,
Si ce sont des bases mysql, Sqlyog a cette fonctionnalité.
Il fourni des ALTER par contre pour le fichier de résultat.
C'est le dernier logiciel qui m'a fait garder une VM windows… et puis j'ai réussi à le faire marcher dans Wine.
# sqldiff
Posté par Yth (Mastodon) . Évalué à 6. Dernière modification le 05 janvier 2023 à 08:35.
Avec une base SQLite tu as l'outil sqldiff.
# Oracle SQL Developer
Posté par Colargol . Évalué à 2.
Oracle SQL Developer permet de se connecter aux bdd éditées par Oracle (Oracle DB et MySql) mais aussi à Postgresql via un driver jdbc et propose, me semble t'il, cette fonctionnalité.
https://www.oracle.com/database/sqldeveloper/
# Merci
Posté par ComputingFroggy (site web personnel) . Évalué à 1.
Merci pour les recommandations (dire que j'avais oublié mon logiciel favori DBeaver … mais je ne savais pas qu'il pouvait faire ça, ne l'ayant utilisé qu'en version communautaire).
Effectivement, j'avais omis de préciser que c'était pour de l'Oracle dans un premier temps, du MySQL dans un second temps, et probablement encore d'autres dans un 3ème temps.
(dommage pour sqldiff)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.