Comment comparer 2 schemas Mysql ?

Le 05/08/2014 Par Jérôme Poussineaumysqlbase de donnéescomparerddlmysqdiffmysqldiff 1.5.0schéma

Qui n’a jamais eu le besoin de comparer 2 schemas de base de données Mysql après avoir oublier de noter l’ensemble des modifications apportées à un environnement ?

Outil gratuit pour comparer 2 schemas Mysql

Pour comparer 2 schemas Mysql, beaucoup d’outils plus ou moins évolués existent sur Internet. Parmi eux, j’ai pu tester un outil très simple nommé mysqldiff et disponible gratuitement.

L’avantage de cet outil est qu’il est codé en PHP: il ne nécessite donc pas à ce titre d’installation. Il faut donc uniquement dé-zipper la version récupérée sur votre EasyPHP ou WAMP local ou bien dans le www de votre serveur de test ou de recette sur lequel se trouve votre base de données.

Comparer 2 schemas Mysql : configurer l’outil

Après avoir sélectionné le langage, vous devez alors configurer la source de données :

Malheureusement, la dernière version (1.5.0) comprend des fonctions deprecated, il est donc nécessaire de corriger la classe library/database.lib.php aux lignes suivantes :

-> ligne 73 : Enlever le trim autour de la variable $this->_con

-> ligne 190 : Remplacer la fonction mysql_list_dbs($this->_con) par mysql_query(« SHOW DATABASES », $this->_con)

-> ligne 234 : Remplacer la colonne Type par Engine (version récente de MySql)

-> ligne 300 : Remplacer la colonne Type par Engine

-> ligne 326 : Remplacer la colonne Type par Engine

Vous devez alors obtenir un écran permettant de sélectionner la base source : (la plus ancienne)

base_source_5c33263668

Une fois la base source sélectionnée, vous pouvez alors choisir la base cible : (la plus récente qui contient les dernières évolutions)

base_cible_edea96508d

Vous pouvez alors choisir les options :

reglage_diff_853bec11d9

Ainsi par défaut, l’auto-increment des tables n’est pas pris en compte pour éviter les différences dû à l’insertion de données.

Vous obtenez alors un script DDL comprenant l’ensemble des modifications de structure à appliquer pour passer de la table source à cible.

L’option « Créer blocs sql INSERT- OU REPLACE » vous permet de sélectionner un ensemble de tables pour lesquels le logiciel va comparer les données pour ainsi proposer des scripts INSERT / REPLACE.

Il faut donc sélectionner uniquement les tables référentiel :

choix_tables_f5b7d929e8

Sommaire

  • fleche vers la droite Outil gratuit pour comparer 2 schemas Mysql
  • fleche vers la droite Comparer 2 schemas Mysql : configurer l’outil

À voir aussi

Tous les articles