Altova DiffDog 2024 Enterprise Edition

Fusionner des Schémas de base de données

Accueil Préc Haut Suivant

Après avoir exécuté une comparaison de schéma entre deux schémas de base de données (celui de "gauche" et celui de "droite"), les différences de table peuvent être synchronisées (fusionnées) entre les deux bases de données. Puisque l’opération de fusion touche la structure de la base de données, elle ne s’applique pas directement. Au lieu, DiffDog génère un script merge. Le script merge généré peut appliquer des modifications soit depuis la base de données "gauche" vers la base de données "droite", ou inversement, de "droite" à "gauche".

 

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.

 

Une fois que le script merge a été généré, vous pouvez choisir d’exécuter le script merge directement dans DiffDog, l’ouvrir avec DatabaseSpy pour l’exécution, ou l’enregistrer dans un fichier pour une exécution ultérieure.

 

Avant d’exécuter le script merge par rapport à la base de données, il est toujours recommandé de le contrôler. Si les différences structurelles entre les schémas de base de données sont nombreux, le script merge généré sera également grand. Afin d’éviter une mise à jour potentiellement dangereuse de plusieurs items dans la base de données de cible par le biais d’un script volumineux, vous pourriez générer des scripts plus petits et les appliquer progressivement. Par exemple, vous pouvez sélectionner des items spécifiques (colonnes, contraintes) qui devraient être inclus dans la fusion, puis générer le script uniquement pour les objets sélectionnés.

Pour générer et exécuter un script merge :

1.Exécuter une comparaison de schéma de base de données (voir Exécuter une comparaison de Schémas de base de données).

2.En option, si vous souhaitez fusionner uniquement des items spécifiques, veuillez les choisir dans un composant en utilisant Ctrl+Clic. Que vous sélectionnez les items dans le composant de droite ou de gauche n’a pas d’incidence sur la direction de la fusion (par exemple, vous pouvez sélectionner des items dans le composant de droite et tout de même effectuer une fusion de gauche vers la droite).

 

Important: Les éléments enfant d’une table ou d’une colonne ne sont pas automatiquement inclus dans la fusion si vous choisissez uniquement le parent. C’est pourquoi, lorsque vous choisissez un objet parent (par exemple, une table), assurez-vous de choisir aussi un item enfant qui doit être fusionné (comme des colonnes ou des contraintes). Par exemple, si le nom de la colonne est égal mais que le type de données est différent (comme indiqué dans l’image ci-dessous), vous devez sélectionner l’item de type de données pour créer un script merge valide.

diff_select-child

 

3.Suivre une des étapes suivantes :

 

Dans le menu Diff et Fusion, sélectionner Copier de gauche à droite.

Cliquer sur la touche de la barre d’outils Copier de gauche à droite ic_merge-selected-left2right.

 

Les commandes ci-dessus partent du principe de vous souhaitez fusionner la structure de base de données de la gauche vers la droite. Sinon, utiliser les commandes inverses correspondantes (droite à gauche).

 

Le script merge SQL est affiché dans le dialogue "Fusionner Schéma". Si aucun item n’a été sélectionné avant que la fusion a été lancée (étape 2 ci-dessus), l’option Utiliser tous les Items est choisie et le script merge "global" est affiché dans la fenêtre de comparaison. L’option Utiliser des items sélectionnés est active si un ou plusieurs items ont été sélectionnés pour la fusion. Dans ce cas, vous pouvez toujouirs décider de fusionner tous les items en sélectionnant l’option Utiliser tous les Items.

dbdiff_schema_comparison_merge

4.Contrôler le script merge et cliquer sur Exécuter.

 

Si le merge script est incorrect, vous pouvez annuler l’opération, enregistrer le script merge SQL sur un fichier et l’éditer avec un éditeur externe, ou montrer et éditer le script merge SQL dans DatabaseSpy, si installé.

Pour exécuter le script merge dans DatabaseSpy:

1.Cliquer avec la touche de droite soit sur une en-tête de composant soit sur un des items sélectionnés, et choisir Afficher script merge : Gauche à droite dans DatabaseSpy depuis le menu contextuel (ou, le cas échéant, Afficher script merge : Droite à gauche dans DatabaseSpy). Cela permet d’ouvrir DatabaseSpy, de créer un nouveau projet et d’ajouter une connexion de source de données vers la base de données cible (c’est à dire, la base de données dans laquelle les modifications se produiront). Si un projet est déjà ouvert dans DatabaseSpy, une nouvelle connexion de source de données est ajoutée au projet et vous serez éventuellement invité à définir un nom pour cette source de données. Le script merge est affiché dans une fenêtre Éditeur SQL dans laquelle vous pouvez contrôler le script et l’éditer le cas échéant.

2.Se connecter à la source de données, cliquer sur la touche Exécuter ic_execute-sql ou appuyer sur F5 pour exécuter le script change et archiver les modifications de schéma dans la base de données.

Pour enregistrer le script merge dans un fichier :

Cliquer avec la touche de droite soit sur une en-tête de composant soit sur un des items sélectionnés, et choisir Enregistrer script merge : Gauche à droite... Depuis le menu contextuel (ou, le cas échéant, Enregistrer script merge : Droite à gauche...).

© 2017-2023 Altova GmbH