Je cherchais un script portable ou un programme de ligne de commande qui peut synchroniser deux schémas de bases de données MySQL. Je ne recherche pas de solution basée sur une interface graphique, car elle ne peut pas être automatisée ou exécutée avec l'outil de création/déploiement.Synchroniser le schéma de deux bases de données dans MySQL
Fondamentalement ce qu'il devrait faire est scan database1 et database2. Vérifiez la différence de schéma (tables et index) et proposez un ensemble d'instructions SQL à exécuter sur l'une de sorte que la structure similaire de l'autre soit minimisée autant que possible.
Si quelqu'un peut indiquer un paquet PHP, Python ou Ruby où ce type de solution est implémenté, je peux essayer de copier le code à partir de là.
Beaucoup d'outils GUI MySQL peuvent probablement le faire, mais je suis à la recherche d'une solution scriptable. Edit: Désolé de ne pas être plus clair: Ce que je cherche, c'est la synchronisation dans la structure de la table tout en gardant les données intactes autant que possible. Pas de réplication de données.
Plus d'infos:
Pourquoi la réplication ne fonctionnera pas.
- Les bases d'installation sont réparties autour de l'état.
- Nous souhaitons que le programme d'installation effectue des correctifs dynamiques sur la base de données en fonction des chagnes créés dans la dernière version, quelle que soit l'ancienne version de l'utilisateur final. Les modifications consistent essentiellement à ajouter une nouvelle colonne à une table, à créer de nouveaux index ou à supprimer des index, à ajouter des tables ou à supprimer des tables utilisées par le système en interne (nous ne supprimons pas la table de données utilisateur).
S'il s'agit d'une interface graphique: Non, elle ne peut pas être utilisée. Nous ne voulons pas regrouper une application de 20 Mo avec notre installateur juste pour diff. Spécialement lorsque le programme d'installation d'origine est inférieur à 1 Mo.
+1 Excellente question. J'allais le demander parce que je suis à la recherche de la même solution ... mais je l'ai trouvé. –