J'aimerais générer des fichiers SQL diff pour comparer les données et la structure de deux bases de données MySQL. P>
Ces fichiers résultants seraient exécutés sous forme de requêtes SQL, sur la ligne de commande. P>
Il y a divers vieux threads liés à ce sujet et sur divers forums, mais ils traitent avec un outil non libre avec l'interface utilisateur (pas des outils de ligne de commande). P>
En outre, la base de données ne doit pas être synchronisée directement, mais uniquement en exécutant le script diff SQL résultant. P>
3 Réponses :
Les suivants auront une allusion à vous montrer les différences (la première partie de votre question), mais la sortie ne sera pas vraiment utilisable en tant que fichiers de correctifs.
Pour comparer deux tables: P>
mysqldump --extended-insert=FALSE -u whatever database1 > file1.txt mysqldump --extended-insert=FALSE -u whatever database2 > file2.txt diff file1.txt file2.txt
diff code> fait partie de MySQL?
Les outils pour le schéma comparent sont plus courants. Certains packages PERL sont équipés de ce qui peut facilement être exécuté à partir de la ligne de commande. J'ai aussi trouvé un pour Data Diff (qui est un problème assez complexe!), Mais c'est un peu vieux et je ne suis pas sûr à quel point c'est bon. P>
schéma comparer: http://adamspiers.org/computing/mysqlliff/ p>
Données Comparer: http://rossbeyer.net/software/mysql_coldiff/ P>
bonne chance. p>
Consultez la boîte à outils Percona Open-Source --- Spécifiquement, le PT-TABLE-SYNC utilitaire. Il utilise des checksums sur des index et d'autres stratégies de DIFF Tables EDIT < / Strong>: J'ai oublié de mentionner que la comparaison de la structure est une bête différente. Je fais cela avec une procédure stockée que vous pouvez appeler de la ligne de commande, mais ce n'est peut-être pas ce que vous recherchez. P> Voici un extrait d'un wrapper de script shell que j'ai écrit pour montrer le schéma diffs: p> Il appelle la procédure stockée compaplasse code>, que j'ai eu de La page Archive de la requête logicielle artificielle . P> P>
Merci d'avoir partagé Royce! Je ne savais pas Page d'archive de la requête logicielle artificielle !
Merci pour Galz et ADW pour votre aide. Même si je n'utilise pas la solution que vous avez proposée, je l'ai examiné de toute façon, il était donc utile. Je me creuse dans ATM Liquibase. Voir: Stackoverflow.com/Questtions/225772/compare-two-mysql- Databas ES qui est un problème connexe (mais plus large. Mon problème était surtout sur MySQL, la ligne de commande et l'outil gratuit). Vérifiez forum.liquibase.org/#topic/49382000000251069 aussi pour un exemple, et voir Si c'est une solution réalisable.