Comparer des schémas de base de données
Une comparaison de schéma de base de données vous permet de comparer des objets provenant de deux schémas de base de données différents, en ce qui concerne leur structure ou leur taille. Les objets de base de données qui peuvent être comparés comprennent des tables, des colonnes, des modes, des fonctions, et des procédures stockées. La comparaison fonctionne de manière différente lorsqu’il s’agit de tables, contrairement aux modes, fonctions ou procédures stockées. Concrètement, lorsqu’il s’agit de la comparaison de tables, les résultats de comparaison rapportent les différences de structure (comme des colonnes différentes, des contraintes, des types de données, etc.). En cas de modes, de fonctions et de procédures stockées, les résultats de comparaison vous informent si la taille de l’objet est la même ou si elles est différente dans la base de données A (côté gauche de la comparaison) après comparaison avec la base de données B (côté droit de la comparaison).
Note : | La comparaison de texte ligne par ligne des définitions d’objet de base de données n’est pas prise en charge. Pour comparer deux définitions d’objets (par exemple, affichages de base de données) ligne-par-ligne, il faut d’abord enregistrer les définitions dans les fichiers puis ouvrir les deux fichiers dans le mode comparaison de fichier. |
Pour lancer une comparaison de Schémas de base de données, cliquer sur la touche de barre d’outils comparaison de Schémas . Deux composants de base de données sont affichés côte à côte (un composant "gauche" et un composant "droite"). Avant d’exécuter la comparaison, vous devez attribuer une source de données à chacun des composants de gauche ou de droite. Ensuite, vous pouvez sélectionner pour la comparaison soit tous les objets d’un schéma ou des objets spécifiques. Pour modifier les objets compris dans la comparaison, cliquer sur la touche Chercher
sur le composant de droite ou de gauche, et sélectionner ou supprimer les cases à cocher requises. Pour plus d’informations, voir Exécuter une comparaison de Schémas de base de données.
![dbdiff_schema_comparison_sample](./images/dbdiff_schema_comparison_sample.png)
Comparaison de schéma de base de données
La Comparaison de schéma de base de données d’échantillon ci-dessus illustre le résultat de la comparaison d’une procédure stockée, une table et un affichage entre deux bases de données de serveur SQL, "ZooDB" et "ZooDBTarget". Les définitions de table sont égales dans les deux schémas source et cible (qui sont indiquées par le signe ), alors que la procédure stockée et la définition d’affichage est différente (indiqué par le signe
).
Une comparaison du schéma de base de base de données peut être enregistrée en tant que fichier. Les fichiers de comparaison de schéma de base de données ont l’extension .dbsdif. Un fichier de comparaison stocke les détails de connexion des bases de données impliquées dans la comparaison, les objets de base de données sélectionnés pour la comparaison, ainsi que toutes les options de configuration que vous avez définies dans la fenêtre "Propriétés" (voir aussi Fichiers de comparaison de schéma de base de données).
Plusieurs options de comparaison de base de données variées sont configurables. Par exemple, vous pouvez paramétrer DatabaseSpy pour que les tables et les colonnes à comparer correspondent automatiquement (par leur nom, type de données ou les deux), ou effectuer le mappage manuellement. Les options de comparaison peuvent être ajustées depuis Outils | Options DiffDog | Comparaison de base de données.
Une fois avoir exécuté une comparaison de schéma de base de données, vous pouvez générer un script merge pour mettre à jour la base de données gauche ou droite. Vous pouvez revoir et exécuter le script merge directement dans DiffDog, l’ouvrir avec DatabaseSpy ou l’enregistrer dans un fichier. Il est également possible de sélectionner des objets spécifiques à inclure dans le script merge (par exemple, une ou plusieurs colonne d’une table). Pour plus d’informations, voir Fusionner Schémas de base de données.
Note : | le script merge synchronise uniquement des différences qui résultent après la comparaison de la structure des tables (cela inclut des modifications dans les colonnes, des clés ou des contraintes). La fusion des différences entre d’autres types d’objet (comme les procédures stockées, les fonctions et les modes) n’est pas prise en charge. |