Pré. | Proc. |
Comparaison de base de données
L'onglet 'Database Compare' fournit un mécanisme permettant de comparer le modèle de données actuel avec une base de données active et, éventuellement, de synchroniser les différences dans les deux sens. Les différences « poussées » dans une base de données en direct sont effectuées à l'aide d'instructions « Alter DDL », tandis que les modifications importées de la base de données en direct peuvent être directement « extraites » dans le modèle.
La fonctionnalité de comparaison de base de données nécessite que le générateur de base de données dispose d'une connexion valide à une base de données active. Cette connexion à la base de données est partagée par les onglets 'SQL Scratch Pad', 'Database Compare' et 'Execute DDL' du Database Builder.
Accéder
Ouvrez la fenêtre Database Builder, puis affichez l'onglet 'Database Compare'.
Ruban |
Développer > Modélisation données > Database Builder > Database Compare |
L'onglet Comparer DDL
L'onglet 'Database Compare' a un certain nombre de contrôles, comme décrit ici.
Numéro et nom |
Description |
---|---|
1 sensible à la casse |
Cochez cette case pour que toutes les comparaisons de propriétés reconnaissent les différences de casse dans le texte de la propriété. |
2 Utiliser un alias si disponible |
Cochez cette case pour indiquer que tous les alias définis doivent être utilisés à la place des noms d' object (au niveau de l' object et de la colonne). |
3 Réinitialiser tout |
Cliquez sur ce bouton pour remettre le drapeau ' Action ' pour tous les objets à la valeur par valeur . |
4 Définir tout importer |
Cliquez sur ce bouton pour définir le drapeau ' Action ' de toutes les différences détectées sur <==== ; c'est-à-dire mettre à jour le modèle avec la ou les valeur de la base de données en direct. |
5 Réglez Tout synchroniser |
Cliquez sur ce bouton pour définir le drapeau ' Action ' de toutes les différences détectées sur ====> ; c'est-à-dire mettre à jour la base de données en direct avec la ou les valeur (s) du modèle. |
6 Différences |
Révision de la liste des objets présentant des incohérences entre le modèle et la base de données en direct. La sélection d'un élément dans cette liste remplira la liste 'Composants'. (Voir le tableau Liste des différences pour une description détaillée de chaque colonne.) |
7 composants |
Révision cette liste des propriétés de l' object sélectionné qui diffèrent entre le modèle et la base de données en direct. (Voir le tableau Liste des composants pour une description détaillée de chaque colonne.) |
8 Réinitialiser |
Cliquez sur ce bouton pour remettre le drapeau ' Action ' pour toutes les propriétés de l' object courant à la valeur par valeur . |
9 Importer depuis Live DB |
Cliquez sur ce bouton pour importer toutes les valeurs des propriétés (avec l'' Action ' de <===) de la base de données en direct dans le modèle. |
10 Générer DDL |
Cliquez sur ce bouton pour générer les instructions 'Alter DDL' pour tous les objets avec une ' Action ' de ====>, et envoyer les instructions à l'onglet 'Execute DDL'. |
Liste des différences
Colonne |
Description |
---|---|
EA |
Affiche le nom de chaque object du modèle qui présente une ou plusieurs différences détectées. Les valeurs vides indiquent que l' object est manquant dans le modèle mais existe dans la base de données active. |
Action |
Par défaut, "Aucune Action " est l'action à entreprendre en tenant compte de la ou des différences de cet object . Cliquez sur la flèche déroulante et sélectionnez une action spécifique. La liste des actions disponibles dans la liste dépendra du fait que l' object donné est associé ou non dans le modèle et la base de données en direct. Objets jumelés
Objets non appariés
Par exemple, si la base de données en direct a une colonne Tableau 'Address1' et que le modèle n'en a pas, définir l' object ' Action ' sur ' ===>' (mettre à jour l' object dans la base de données à partir du modèle) définit la colonne ' Item Action ' à 'Drop Address1', ce qui supprimera la colonne de la base de données en direct. |
BD en direct |
Affiche le nom de chaque object dans la base de données en direct qui a une ou plusieurs différences détectées. Les valeurs vides indiquent que l' object existe dans le modèle mais qu'il manque dans la base de données active. |
Compter |
Affiche le nombre total de différences détectées pour l' object (et tous ses composants) entre le modèle et la base de données active. |
Liste des composants
Colonne |
Description |
---|---|
Item |
Affiche le nom ou la description du composant pour chaque différence détectée. Les différences sont regroupées en trois catégories : Propriétés , Colonnes et Contraintes, dans une arborescence. |
EA |
Affiche la valeur du composant donné tel qu'il est détecté dans le modèle. Les valeurs vides indiquent que la valeur est manquante dans le modèle mais existe dans la base de données active. |
Action |
Par défaut, l'action correspondant au paramétrage du champ ' Action ' de l' object dans la liste 'Différences', pour indiquer l'action à entreprendre concernant la différence détectée pour le composant. Cliquez sur la flèche déroulante pour sélectionner une action alternative ; les options disponibles dans la liste dépendent du type de composant et de la différence détectée.
|
BD en direct |
Affiche la valeur du composant sélectionné dans la base de données en direct. Les valeurs vides indiquent que la valeur existe dans le modèle mais est manquante dans la base de données active. |
Compter |
Affiche le nombre de différences entre le modèle et la base de données active détectées dans le composant sélectionné. |
Utilisation de la comparaison de bases de données
Chaque fois que vous effectuez une comparaison, Enterprise Architect lit la définition à la fois de la base de données en direct et du modèle, puis tente de 'coupler' chaque object d'une source avec l'autre, en utilisant son nom (et son schéma, si pertinent pour le SGBD actuel) .
Si une correspondance est trouvée, le nom de l' object est affiché dans les colonnes 'EA' et 'Live DB' avec une action par défaut de 'Aucune Action '. La colonne 'Count' indique le nombre total de différences trouvées pour l' object et ses composants ou propriétés.
Si aucune correspondance n'est trouvée entre les systèmes, le nom de l' object est affiché dans la colonne source (soit 'EA' ou 'Live DB') tandis que l'autre colonne est vide. Dans cet état, il est possible de coupler l' object avec un object d'un nom différent ; la liste déroulante ' Action ' présentera les objets disponibles. Si un nouvel appariement est effectué, les définitions des deux objets sont comparées pour les différences et les résultats sont affichés dans la liste 'Composants', avec l'action par défaut '====>' sélectionnée.
Si vous sélectionnez une action au niveau de l' object , cela définira l'action correspondante pour tous les composants et propriétés de l' object . Cependant, si vous sélectionnez l'action 'Personnaliser' au niveau de l' object , vous pouvez déterminer une action différente pour chaque composant.
Par exemple, une colonne (tax_amount) et une contrainte (ck_customersordersitems_discount) ont été renommées dans Tableau « public.customers_order_items » (dans le modèle Exemple) et une comparaison de base de données a été effectuée ; cette image montre les différences trouvées :
Dans l'image, il n'y a qu'un seul Tableau qui a détecté des différences - 'public.customers_order_items' ; la sélection de ceci remplit la liste 'Composants'. À partir des résultats détectés, il peut être déterminé que le modèle de données contient une colonne (tax_amount2) et une contrainte de vérification (ck_customerordersitems_discount1) que la base de données en direct ne contient pas et à son tour la base de données en direct contient une colonne (tax_amount) et une contrainte de vérification (ck_customerordersitems_discount ) contrairement au modèle de données.
Comparaison avec les options
La fonctionnalité « Comparer avec les options » fonctionne de la même manière que pour une comparaison directe, sauf que vous êtes invité à choisir les comparaisons d' object /propriété à effectuer. Cela vous permet d'ignorer des différences particulières qui ne sont pas pertinentes à l'heure actuelle.
Ces tableaux décrivent les différentes comparaisons qui peuvent être activées ou désactivées.
Tous les objets, propriétaire
Comparaison |
Action |
---|---|
Propriétaire |
Sélectionnez cette option pour indiquer que la propriété 'Propriétaire' de tous les objets de la base de données doit être comparée, une fois que les objets ont été 'jumelés'. |
Options Tableau
Option |
Action |
---|---|
Tableaux |
Sélectionnez cette option parent pour activer toutes les options de comparaison Tableau . Désélectionnez pour désactiver toutes les autres options. Vous désélectionnerez ou sélectionnerez alors des options spécifiques dans la liste. |
Tableau - Propriétés étendues |
Sélectionnez pour indiquer que les propriétés étendues de Tableaux (telles que DB Version et Tablespace) doivent être comparées. |
Tableau - Remarques |
Sélectionnez pour indiquer que les remarques appliquées aux Tableaux doivent être comparées. |
Colonnes |
Sélectionnez cette option parent pour activer toutes les options 'Comparaison de colonnes'. Désélectionnez pour désactiver toutes les autres options 'Colonne'. Vous désélectionnerez ou sélectionnerez alors des options spécifiques dans la liste. |
Colonne - Type |
Sélectionnez pour indiquer que le nom du type de données pour les colonnes Tableau doit être comparé. |
Colonne - Taille |
Sélectionnez pour indiquer que la taille du type de données pour les colonnes du Tableau doit être comparée. |
Colonne - Valeur par défaut |
Sélectionnez pour indiquer que les valeurs par défaut des colonnes du Tableau doivent être comparées. |
Colonne - Poste |
Sélectionnez pour indiquer que les positions des colonnes du Tableau doivent être comparées. |
Colonne - non nulle |
Sélectionnez pour indiquer que la propriété non nulle des colonnes du Tableau doit être comparée. |
Colonne - Numérotation automatique |
Sélectionnez pour indiquer que les propriétés de numérotation automatique des colonnes du Tableau doivent être comparées (comme AutoNum, StartNum et Increment). |
Colonne - Colonnes sans correspondance |
Sélectionnez pour indiquer que les colonnes Tableau qui ne correspondent pas entre le modèle et la base de données en direct doivent être comparées. Il s'agit généralement de colonnes qui existent dans un système mais n'existent pas dans l'autre. |
Colonne - Propriétés étendues |
Sélectionnez pour indiquer que les propriétés étendues des colonnes Tableau (telles que Non signé et Remplissage zéro) doivent être comparées. |
Colonne - Remarques |
Sélectionnez pour indiquer que les remarques appliquées aux colonnes Tableau doivent être comparées. |
Contraintes |
Sélectionnez cette option parent pour activer toutes les options 'Comparaison des contraintes Tableau '. Désélectionnez pour désactiver toutes les options ' Tableau Constraint'. Vous désélectionnerez ou sélectionnerez alors des options spécifiques dans la liste. |
Contrainte - Clés primaires |
Sélectionnez pour indiquer que les propriétés liées aux clés primaires doivent être comparées. |
Contrainte - Foreign Keys |
Sélectionnez pour indiquer que les propriétés liées aux Foreign Keys doivent être comparées. |
Contrainte - Index |
Sélectionnez pour indiquer que les propriétés liées aux index doivent être comparées. |
Contrainte - Contraintes uniques |
Sélectionnez pour indiquer que les propriétés liées aux contraintes uniques doivent être comparées. |
Contrainte - Vérifier les contraintes |
Sélectionnez pour indiquer que les propriétés liées aux contraintes de vérification doivent être comparées. |
Contrainte - Déclencheurs Tableau |
Sélectionnez pour indiquer que les propriétés liées aux déclencheurs Tableau doivent être comparées. |
Contrainte - Contraintes inégalées |
Sélectionnez pour indiquer que les contraintes Tableau qui ne correspondent pas entre le modèle et la base de données en direct doivent être comparées. Il s'agit généralement de contraintes qui existent dans un système mais n'existent pas dans l'autre. |
Contraintes - Propriétés étendues |
Sélectionnez pour indiquer que les propriétés étendues des Contraintes Tableau (telles que Facteur de remplissage et Regroupé) doivent être comparées. |
Contraintes - Remarques |
Sélectionnez pour indiquer que les remarques appliquées aux contraintes Tableau doivent être comparées. |
Notes
- La fonctionnalité Database Compare peut actuellement effectuer des comparaisons sur les types object Tableau , Vue , Procedure, Function et Séquence