Comparez les structures de deux bases de données?
Je voulais vous demander si il est possible de comparer la base de données complète de la structure de deux énormes bases de données.
Nous avons deux bases de données, l'un est une base de données de développement, l'autre une base de données de production.
J'ai parfois oublié de faire des changements dans la base de données de production, avant de nous remettre en liberté des parties de notre code, ce qui entraîne que la production de la base de données n'a pas la même structure, donc, si nous libérer de quelque chose, nous avons eu des erreurs.
Est-il un moyen de comparer les deux, ou de les synchroniser?
source d'informationauteur streetparade
Vous devez vous connecter pour publier un commentaire.
Ce sujet http://www.mysqldiff.org/ qui est un freeware?
Vous pouvez utiliser la ligne de commande:
Pour base de données MySQL, vous pouvez comparer les afficher et les tables de (nom de la colonne et la colonne type) à l'aide de cette requête:
Si vous préférez l'aide de l'outil avec INTERFACE utilisateur, vous pouvez également utiliser ce script
https://github.com/dlevsha/compalex
ce qui peut comparer des tables, des vues, des clés, etc.
Capture d'écran (comparer les tableaux)
Rouge-Porte SQL Compare est un outil formidable qui va le faire pour vous. J'ai utilisé ce depuis des années avec un grand succès. Il m'a sauvé des milliers d'heures de travail.
Ils ont aussi un outil qui permettra de comparer les données. Le produit que j'ai mentionné ci-dessus compare le schéma.
www-red-gate.com
Vous pouvez simplement les jeter avec l'option --no-données et de comparer les fichiers.
N'oubliez pas d'utiliser l'option --lock-tables=0 option sur votre base de données de production pour éviter le grand méchant de verrouillage global.
Si vous utilisez la même commande mysqldump version (votre dev et les systèmes de production doivent avoir le même logiciel, non?) alors vous vous attendre à obtenir plus ou moins de fichiers identiques. Les tables seront par ordre alphabétique ainsi, une simple diff permettra de montrer les écarts facilement.
Vous aurez besoin d'un outil, sans doute, comme Comparaison des données.
En fonction de votre base de données, les outils disponibles varient.
- Je utiliser Embarcadero ER/Studio pour cette. Il a une comparaison et Fusion de fonctionnalité.
Il y a beaucoup d'autres, comme Toad for MySQL, qui ont également comparer. Également d'accord sur la Rouge-Porte suggestion, mais il n'a jamais été utilisé pour MySQL.
Découvrez Gemini Delta - SQL Différence Manager pour .NET. Une version bêta gratuite est disponible pour téléchargement, mais la version complète est à quelques jours seulement de la sortie publique.
Il ne se compare pas au niveau de la ligne de données de différences, mais il compare les tableaux, les fonctions, les sprocs, etc... et il est rapide comme l'éclair. (La nouvelle version 1.4, les charges et les compare 1k Sprocs en moins de 4 secondes, en comparaison avec d'autres outils que j'ai testé qui a pris plus de 10 secondes.)
Tout le monde est le droit, RedGate n'a d'excellents outils.
J'ai essayé mysqldiff sans succès, donc j'aimerais enrichir les futurs lecteurs en attirant l'attention sur mysqlworkbench de la fonction de comparaison. http://dev.mysql.com/doc/workbench/en/wb-database-diff-report.html#c13030
si vous ouvrez un onglet modèle et sélectionnez le menu bases de données, vous obtenez de comparer les schémas option, que vous pouvez utiliser pour comparer deux schémas sur deux serveurs différents, ou deux schémas sur le même serveur, ou d'un schéma et d'un modèle ou d'un tas d'autres options que je n'ai pas encore essayé.
Pour mysql sur Linuxil est possible via phpmyadmin pour exporter les bases de données sans données et de la structure.
De faire défiler les options d'exportation pour l'ensemble de la base de données, décochez simplement la "data" et la sortie de texte. Exporter les bases de données que vous souhaitez comparer.
Puis, en comparaison de fichier dans votre programme préféré ou d'un site, de comparer les deux fichier texte sorties des bases de données. La synchronisation est encore manuel dans cette solution, mais c'est efficace pour comparer et trouver les différences structurelles.
Répondre à ce type de question actuellement, j'ai fait un script qui utilise
information_schema
de contenu pour comparer la colonne type de données, et le tableauEspère que ce script peut également aider les personnes qui recherche une non-application de la solution, mais l'utilisation de script. Cheers
SchemaCrawler est un être libre, indépendant de la plate-outil qui permet de comparer les structures de base de données. Les deux bases de données n'ont pas besoin d'être en ligne en même temps - vous pouvez enregistrer votre structure de base de données dans un fichier texte lisible. Comaprisons sont fait en utilisant le standard diff outils.
Je recommanderais l'automatisation de la comparaison comme une partie de développer et de déployer des processus pour s'assurer que vos systèmes de production ne sont jamais hors de date.
Je serais certainement aller avec AdeptSQL si vous êtes à l'aide de MSSQL. C'est la moins bonne à la recherche, mais les plus talentueux db outil de comparaison parmi ceux que j'ai essayé. Il peut comparer à la fois la structure et les données. Il vous informe sur les tables existent pas sur un db, mais n'existe pas sur les autres, compare la structure et les données de la commune et il peut produire le script de synchronisation entre les deux. Ce n'est pas gratuit mais a un essai de 30 jours (aussi loin que je me souvienne)
Essayer dbForge Régime de Comparer for SQL server. Il peut comparer et de synchroniser n'importe quel schéma de base de données. Rapide, facile, offrant toujours un résultat correct. Voir comment il vole sur votre base de données!
SQL Examinateur Suite 2010 compare les bases de données MySQL (à la fois le schéma et les données)
J'ai finalement utilisé un simple outil appelé "structure mysql comparer" pour résoudre ce problème. C'est uniquement pour windows, mais c'est gratuit et ça fonctionne..