PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment comparer deux schémas dans PostgreSQL

Parfois, vous devrez peut-être comparer deux schémas dans PostgreSQL. Vous pouvez utiliser une requête SQL pour accomplir cela, ou utiliser l'un des nombreux outils tiers qui vous permettent de comparer deux schémas dans PostgreSQL. Dans cet article, nous examinerons les deux manières de comparer deux schémas dans PostgreSQL.


Comment comparer deux schémas dans PostgreSQL

Nous examinerons deux manières de comparer deux schémas dans PostgreSQL :utiliser des requêtes SQL et utiliser pgAdmin.


Comparer deux schémas à l'aide de SQL

Voici la requête SQL pour comparer deux schémas. Remplacez schéma1 et schéma2 par les noms de deux schémas que vous souhaitez comparer.

select COALESCE(c1.table_name, c2.table_name) as table_name,
       COALESCE(c1.column_name, c2.column_name) as table_column,
       c1.column_name as schema1,
       c2.column_name as schema2
from
    (select table_name,
            column_name
     from information_schema.columns c
     where c.table_schema = 'schema1') c1
full join
         (select table_name,
                 column_name
          from information_schema.columns c
          where c.table_schema = 'schema2') c2
on c1.table_name = c2.table_name and c1.column_name = c2.column_name
where c1.column_name is null
      or c2.column_name is null
order by table_name,
         table_column;

La requête ci-dessus répertorie essentiellement toutes les lignes présentes dans l'un ou l'autre schéma avec des informations sur sa présence/absence dans l'autre schéma.

  • table_name – nom de la table présente dans schema1 ou schema2
  • table_column – nom de la colonne présente dans schema1 ou schema2
  • schéma1 – si la colonne existe dans schema1 son nom est affiché, sinon il est nul.
  • schéma2 – si la colonne existe dans schema2 son nom est affiché, sinon il est nul.


Comparer deux schémas dans pgAdmin

Nous utiliserons le Schema Diff fonctionnalité de pgAdmin pour comparer des schémas ou des bases de données ou d'autres objets.

L'outil Schema diff vous permet de tracer la différence entre deux objets de base de données et de répertorier les différentes instructions SQL pour synchroniser les bases de données.

Cependant, veuillez noter que les serveurs source et cible doivent être de la même version majeure du serveur.

Voici les étapes pour comparer deux schémas à l'aide de l'outil Schema Diff.

1. Cliquez sur Schéma Diff option, sous Outils menu.

2. Vous verrez un formulaire dans lequel vous devez sélectionner la source et la cible

3. Sélectionnez les versions de serveur, les serveurs source et cible et la base de données/schéma en fonction de vos besoins.

4. Cliquez sur Comparer pour comparer deux bases de données/schémas. Vous verrez une liste détaillée des résultats de la comparaison d'objets, suivis du résultat de la comparaison DDL

5. Le résultat de la comparaison d'objets est présenté sous forme d'arborescence, sur laquelle vous pouvez cliquer pour développer/réduire.

6. Les résultats de la comparaison DDL sont présentés en 3 panneaux. Dans le panneau de gauche, vous trouverez les requêtes SQL du schéma source. Dans le panneau du milieu, vous avez les instructions SQL pour le schéma cible. Et dans le panneau de droite, vous trouverez la différence entre les instructions SQL de deux schémas.

7. Vous trouverez de nombreuses options pour affiner les résultats de comparaison, telles que l'éditeur de requête, le générateur de script et les filtres.


pgAdmin Schema diff est beaucoup plus complet que la comparaison de schéma basée sur SQL et est fortement recommandé. Espérons que cet article vous aidera à comparer deux schémas dans PostgreSQL.

Ubiq facilite la visualisation des données et leur suivi dans des tableaux de bord en temps réel. Essayez Ubiq gratuitement.