sql >> Database >  >> RDS >> PostgreSQL

Hoe twee schema's in PostgreSQL te vergelijken?

Soms moet u twee schema's in PostgreSQL vergelijken. U kunt hiervoor een SQL-query gebruiken of een van de vele hulpprogramma's van derden gebruiken waarmee u twee schema's in PostgreSQL kunt vergelijken. In dit artikel zullen we beide manieren bekijken om twee schema's in PostgreSQL te vergelijken.


Hoe twee schema's in PostgreSQL te vergelijken

We zullen twee manieren bekijken om twee schema's in PostgreSQL te vergelijken:met behulp van SQL-query's en met behulp van pgAdmin.


Twee schema's vergelijken met SQL

Hier is de SQL-query om twee schema's te vergelijken. Vervang schema1 en schema2 door de namen van twee schema's die je wilt vergelijken.

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;

De bovenstaande query somt in feite alle rijen op die aanwezig zijn in elk schema met informatie over de aanwezigheid/afwezigheid ervan in het andere schema.

  • tabelnaam – naam van tabel aanwezig in schema1 of schema2
  • table_column – naam van kolom aanwezig in schema1 of schema2
  • schema1 – als de kolom in schema1 bestaat, wordt de naam ervan weergegeven, anders is deze null.
  • schema2 – als de kolom in schema2 bestaat, wordt de naam ervan weergegeven, anders is deze null.


Vergelijk twee schema's in pgAdmin

We gebruiken het Schema Diff functie van pgAdmin om schema's of databases of andere objecten te vergelijken.

Met de tool Schema diff kunt u het verschil tussen twee database-objecten traceren en de verschillende SQL-instructies weergeven om databases te synchroniseren.

Houd er echter rekening mee dat de bron- en doelservers van dezelfde hoofdserverversie moeten zijn.

Hier zijn de stappen om twee schema's te vergelijken met de Schema Diff-tool.

1. Klik op Schema Diff optie, onder Extra menu.

2. U ziet een formulier waarin u Bron en Doel moet selecteren

3. Selecteer serverversies, bron- en doelservers en database/schema, afhankelijk van uw vereisten.

4. Klik op Vergelijken om twee databases/schema's te vergelijken. U ziet een gedetailleerde lijst met resultaten van objectvergelijkingen, gevolgd door DDL-vergelijkingsresultaten

5. Het resultaat van de objectvergelijking wordt weergegeven als een boomstructuur, waarop u kunt klikken om uit te vouwen/samenvouwen.

6. DDL-vergelijkingsresultaten worden gepresenteerd in 3 panelen. In het linkerdeelvenster vindt u SQL-query's van het bronschema. In het middelste paneel vindt u de SQL-instructies voor het doelschema. En in het rechterdeelvenster vindt u het verschil tussen SQL-instructies van twee schema's.

7. U zult veel opties vinden om vergelijkingsresultaten te verfijnen, zoals Query-editor, Scriptgenerator en filters.


pgAdmin Schema diff is veel uitgebreider dan op SQL gebaseerde schemavergelijking en wordt sterk aanbevolen. Hopelijk helpt dit artikel je om twee schema's in PostgreSQL te vergelijken.

Ubiq maakt het eenvoudig om data te visualiseren en te monitoren in realtime dashboards. Probeer Ubiq gratis.

  1. HubSpot ODBC-stuurprogramma

  2. PostgreSQL ERROR:functie to_tsvector (karakter variërend, onbekend) bestaat niet

  3. MariaDB LOCALTIME() uitgelegd

  4. PostgreSQL-rechten en gebruikersbeheer - wat u moet weten