Je dispose d'une base de données MySQL que je suis en train de développer. J'ai une copie de cette base de données sur ma machine de développement que je modifie aussi vite que je développe et une copie sur un serveur de test. Ma question est la suivante :
Existe-t-il un moyen de comparer les deux instances de la base de données pour voir s'il y a eu des changements ?
Ce n'est pas un réel problème de simplement redéployer la base de données sur le serveur de test, mais lorsque les utilisateurs finaux commencent à entrer des données de test, cela peut être un peu délicat. Une question connexe est également pertinente un peu plus tard dans la production...
Existe-t-il un moyen simple d'apporter des modifications incrémentielles à la base de données de production ? En d'autres termes, si j'ajoute une nouvelle table et modifie une table existante, existe-t-il des outils qui détectent les changements et génèrent des scripts qui effectuent les mises à jour en toute sécurité sur la copie de production de la base de données ?
EDIT : Outils mentionnés dans les réponses :
- Comparaison des schémas et des données MySQL de Red-Gate (Commercial)
- Maatkit (maintenant Percona) .
- liquibase
- Crapaud
- Comparaison des bases de données de Nob Hill (Commercial)
- MySQL Diff
- SQL EDT (Commercial)
4 votes
Je crois que les outils de RedGate sont pour SQL Server seulement.
4 votes
Red Gate dispose également d'une version MySQL, actuellement gratuite car elle est en accès anticipé étendu : red-gate.com/produits/MySQL_Compare/index.htm
2 votes
Il s'agit d'un véritable problème. Je déploie de la machine de développement à la machine de production et cela casse TOUJOURS quelque chose. Merci pour cet article informatif
1 votes
L'outil MySQL de Redgate est maintenant à 70 $/utilisateur. Même à ce prix, je l'évaluerai et publierai mes commentaires ici.
0 votes
J'en avais également besoin à l'instant, car je devais augmenter la taille d'un champ. Je ne voulais pas simplement l'augmenter et penser que tout allait bien. @Jared a suggéré exactement ce que j'ai utilisé.
0 votes
Un autre outil de Windows : Banc de base de données fonctionne sous Linux via Wine et supporte également d'autres systèmes de bases de données. Cet outil comprend un "Schema Compare", qui n'est pas gratuit, mais pas cher non plus.
0 votes
J'aime utiliser SQL Architect. Il possède une belle fonction de comparaison. Ici : sqlpower.ca/page/architect_download_os
0 votes
Une alternative fantastique pour Windows, Linux ou Mac est la mysqldbcompare outil développé par MySQL eux-mêmes. Veuillez consulter ma réponse ici pour plus d'informations : stackoverflow.com/a/26192873/1365289 ! Cela m'a pris beaucoup de temps à trouver et cela en valait la peine !
0 votes
Celui-ci ne nécessite pas de connexion à une base de données, fournit une API et une interface web : blog.geneticcoder.com/2015/11/12/