PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So vergleichen Sie zwei Schemas in PostgreSQL

Manchmal müssen Sie möglicherweise zwei Schemas in PostgreSQL vergleichen. Sie können dazu eine SQL-Abfrage verwenden oder eines der vielen Tools von Drittanbietern verwenden, mit denen Sie zwei Schemas in PostgreSQL vergleichen können. In diesem Artikel sehen wir uns beide Möglichkeiten an, zwei Schemas in PostgreSQL zu vergleichen.


So vergleichen Sie zwei Schemas in PostgreSQL

Wir werden uns zwei Möglichkeiten ansehen, zwei Schemas in PostgreSQL zu vergleichen – mit SQL-Abfragen und mit pgAdmin.


Zwei Schemata mit SQL vergleichen

Hier ist die SQL-Abfrage, um zwei Schemas zu vergleichen. Ersetzen Sie schema1 und schema2 durch die Namen von zwei Schemas, die Sie vergleichen möchten.

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;

Die obige Abfrage listet grundsätzlich alle Zeilen auf, die in einem der beiden Schemas vorhanden sind, mit Informationen über das Vorhandensein/Fehlen im anderen Schema.

  • Tabellenname – Name der in Schema1 oder Schema2 vorhandenen Tabelle
  • Tabellenspalte – Name der in Schema1 oder Schema2 vorhandenen Spalte
  • Schema1 – Wenn die Spalte in Schema1 existiert, wird ihr Name angezeigt, andernfalls ist sie null.
  • schema2 – Wenn die Spalte in Schema2 existiert, wird ihr Name angezeigt, sonst ist sie null.


Zwei Schemas in pgAdmin vergleichen

Wir werden den Schema Diff verwenden Funktion von pgAdmin zum Vergleichen von Schemas oder Datenbanken oder anderen Objekten.

Mit dem Schema-Diff-Tool können Sie den Unterschied zwischen zwei Datenbankobjekten nachverfolgen und die verschiedenen SQL-Anweisungen zum Synchronisieren von Datenbanken auflisten.

Bitte beachten Sie jedoch, dass die Quell- und Zielserver dieselbe Hauptserverversion haben sollten.

Hier sind die Schritte zum Vergleichen zweier Schemas mit dem Schema Diff-Tool.

1. Klicken Sie auf Schemaunterschied Option unter Extras Menü.

2. Sie sehen ein Formular, in dem Sie Quelle und Ziel auswählen müssen

3. Wählen Sie je nach Bedarf Serverversionen, Quell- und Zielserver sowie Datenbank/Schema aus.

4. Klicken Sie auf Vergleichen, um zwei Datenbanken/Schemas zu vergleichen. Sie sehen eine detaillierte Liste der Ergebnisse des Objektvergleichs, gefolgt vom Ergebnis des DDL-Vergleichs

5. Das Ergebnis des Objektvergleichs wird als Baum dargestellt, den Sie zum Erweitern/Reduzieren anklicken können.

6. DDL-Vergleichsergebnisse werden in 3 Feldern präsentiert. Im linken Bereich finden Sie SQL-Abfragen des Quellschemas. Im mittleren Bereich haben Sie die SQL-Anweisungen für das Zielschema. Und im rechten Bereich finden Sie den Unterschied zwischen SQL-Anweisungen zweier Schemas.

7. Sie werden viele Optionen finden, um Vergleichsergebnisse zu verfeinern, wie z. B. Abfrage-Editor, Skript-Generator und Filter.


pgAdmin Schema Diff ist viel umfassender als der SQL-basierte Schemavergleich und wird dringend empfohlen. Hoffentlich hilft Ihnen dieser Artikel dabei, zwei Schemas in PostgreSQL zu vergleichen.

Ubiq macht es einfach, Daten zu visualisieren und sie in Echtzeit-Dashboards zu überwachen. Testen Sie Ubiq kostenlos.