Il s'agit de la commande mysql-schema-diffp qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
mysql-schema-diff - comparer les schémas de base de données MySQL
SYNOPSIS
mysql-schema-diff [B ] B B
mysql-schema-diff --help
DESCRIPTION
mysql-schéma-diff est une interface de script Perl au CPANhttp://www.perl.com/CPAN> module
MySQL :: Diffhttp://search.cpan.org/search?module=MySQL::Diff> qui compare les données
structures (c'est-à-dire définitions de schéma/table) de deux MySQLhttp://www.mysql.com/>
bases de données et renvoie les différences sous la forme d'une séquence de commandes MySQL adaptée à la canalisation
développement mysql qui transformera la structure de la première base de données pour qu'elle soit identique à
celui du deuxième (cf. diff et pièce).
Les structures de base de données peuvent être comparées, qu'il s'agisse de fichiers contenant des définitions de table ou
bases de données existantes, locales ou distantes.
NB Le programme fait aucune tenter de comparer les données qui peuvent être stockées dans le
bases de données. C'est uniquement pour comparer les définitions des tables. je n'ai pas l'intention de
mettre en œuvre la comparaison des données ; c'est un problème complexe et je n'en ai pas besoin
fonctionnalité de toute façon. Cependant, il existe un autre programme coldiff
<http://rossbeyer.net/software/mysql_coldiff/> qui fait cela, et est basé sur un ancien
programme appelé données différentes qui semble avoir disparu du net.
Pour PostgreSQL, il existe des outils similaires tels que pgdiffhttp://pgdiff.sourceforge.net/> et
apgdiffhttp://apgdiff.startnet.biz/>.
EXEMPLES
# comparer les définitions de table dans deux fichiers
mysql-schéma-diff db1.mysql db2.mysql
# comparer les définitions de table dans un fichier 'db1.mysql' avec une base de données 'db2'
mysql-schéma-diff db1.mysql db2
# mettez à niveau interactivement le schéma de la base de données 'db1' pour qu'il ressemble au
# schéma décrit dans le fichier 'db2.mysql'
mysql-schema-diff -A db1 db2.mysql
# comparer les définitions de table dans deux bases de données sur une machine distante
mysql-schema-diff --host=remote.host.com --user=moncompte db1 db2
# comparer les définitions de table dans une base de données locale 'foo' avec un
# base de données 'bar' sur une machine distante, quand un fichier foo déjà
# existe dans le répertoire courant
mysql-schema-diff --host2=remote.host.com --password=secret db:foo bar
OPTIONS
Plus de détails à venir; pour l'instant, lancez "mysql-schema-diff --help".
INTERNES
Pour les deux structures de base de données comparées, les événements suivants se produisent :
· Si l'argument est un nom de fichier valide, le fichier est utilisé pour créer une base de données temporaire
sur lequel "mysqldump -d" est exécuté pour obtenir les définitions de table sous forme canonique.
La base de données temporaire est alors supprimée. (La base de données temporaire est nommée
"test_mysqldiff_temp_something" car les autorisations MySQL par défaut permettent à n'importe qui de
créer des bases de données commençant par le préfixe "test_".)
· Si l'argument est une base de données, "mysqldump -d" est exécuté directement dessus.
· Lorsque l'authentification est requise, le nom d'hôte, le nom d'utilisateur et le mot de passe fournis par le
les options correspondantes sont utilisées (tapez "mysql-schema-diff --help" pour plus d'informations).
· Chaque ensemble de définitions de table est maintenant analysé en tables, champs et clés d'index
dans ces tableaux ; ceux-ci sont comparés, et les différences sont sorties sous la forme de
Instructions MySQL.
Utilisez mysql-schema-diffp en ligne en utilisant les services onworks.net