Une façon facile de comparer les bases de données MySQL

Une façon facile de comparer les bases de données MySQL

Avez-vous déjà été confronté au défi de comparer les bases de données MySQL? Heureusement, il existe un outil pratique qui peut vous rendre la tâche beaucoup plus facile.

Expérience:

Imaginez cette situation: vous travaillez sur un projet qui dispose déjà d’un environnement de production et d’un environnement en direct. La version en direct utilise la branche principale (Master) tandis que la version de production utilise la branche de développement (Develop). De nombreuses fonctionnalités dans la version de production doivent encore être testées et déplacées vers la version en direct.

Nous avons travaillé sur l’ajout de nombreuses fonctionnalités à la version de production et l’avons préparée pour être déplacée vers la version en direct. Avant de le faire, il était essentiel de préparer un journal complet de tous les changements apportés au code et à la base de données. Mettre à jour le code était très simple car GitHub était utilisé et il suffisait de fusionner la branche de développement avec la branche principale. La principale préoccupation concernait les changements de base de données. En réalité, si nous avions utilisé les migrations, tout aurait été plus simple. Mais sans cela, nous devions mettre à jour manuellement toutes les modifications de la base de données. Nous avons donc cherché un outil qui pourrait nous montrer les différences entre les bases de données en direct et de production. Et grâce à la communauté MySQL, nous avons découvert l’utilitaire “mysqldbcompare”.

mysqldbcompare:

“Mysqldbcompare” est un outil gratuit en ligne de commande qui compare les objets et les données de deux bases de données pour en trouver les différences. L’installation et l’utilisation de cet outil sont très faciles. Vous l’avez peut-être déjà installé sur votre système. Tapez simplement “mysqldbcompare” dans la ligne de commande pour vérifier s’il est installé. Si ce n’est pas le cas, suivez les étapes mentionnées sur le site officiel pour l’installer sur différents systèmes d’exploitation.

Il offre de nombreuses options pour exclure différentes vérifications lors de la recherche des différences, telles que:

  • Vérifier les définitions des bases de données
  • Vérifier l’existence des objets dans les deux bases de données
  • Comparer les définitions des objets, et bien plus encore.

Le bon côté de cet outil est qu’il propose également différentes options pour afficher les différences sous différents formats. Vous pouvez choisir le format SQL, par exemple, pour obtenir les différences sous forme de requêtes SQL, ou le format CSV pour obtenir les différences au format CSV.

Exécutez la commande suivante:

mysqldbcompare

Cela générera un fichier diff.txt contenant les différences entre les bases de données au format SQL. Toutefois, attention, il répertorie également toutes les différences entre les index. Vous devrez donc examiner attentivement le fichier diff.txt, le filtrer manuellement et obtenir le SQL exact à exécuter dans l’environnement en direct.

J’ai donc également exécuté cette commande et obtenu le SQL nécessaire à l’exécution dans l’environnement en direct.

Consultez la documentation officielle pour explorer davantage les options disponibles dans cet outil.

Et n’oubliez pas de découvrir d’autres utilitaires MySQL qui peuvent vous aider de diverses manières et vous faciliter la vie.

Si vous avez une méthode plus simple pour accomplir cette tâche, n’hésitez pas à la partager.

Merci 🙂