PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak porównać dwa schematy w PostgreSQL

Czasami może zajść potrzeba porównania dwóch schematów w PostgreSQL. Możesz użyć zapytania SQL, aby to osiągnąć, lub użyć jednego z wielu narzędzi innych firm, które pozwalają porównać dwa schematy w PostgreSQL. W tym artykule przyjrzymy się obu sposobom porównywania dwóch schematów w PostgreSQL.


Jak porównać dwa schematy w PostgreSQL

Przyjrzymy się dwóm sposobom porównania dwóch schematów w PostgreSQL – przy użyciu zapytań SQL i przy użyciu pgAdmin.


Porównaj dwa schematy za pomocą SQL

Oto zapytanie SQL do porównania dwóch schematów. Zastąp schemat1 i schemat2 nazwami dwóch schematów, które chcesz porównać.

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;

Powyższe zapytanie zasadniczo wyświetla wszystkie wiersze obecne w każdym schemacie z informacją o jego obecności/nieobecności w drugim schemacie.

  • nazwa_tabeli – nazwa tabeli występującej w schemacie1 lub schemacie2
  • tabela_kolumna – nazwa kolumny występującej w schemacie1 lub schemacie2
  • schemat1 – jeśli kolumna istnieje w schemacie1, wyświetlana jest jej nazwa, w przeciwnym razie jest ona pusta.
  • schemat2 – jeśli kolumna istnieje w schemacie 2, wyświetlana jest jej nazwa, w przeciwnym razie jest ona pusta.


Porównaj dwa schematy w pgAdmin

Użyjemy różnicy schematu funkcja pgAdmin do porównywania schematów, baz danych lub innych obiektów.

Narzędzie do porównywania schematów pozwala prześledzić różnicę między dwoma obiektami bazy danych i wyświetlić listę różnych instrukcji SQL w celu synchronizacji baz danych.

Należy jednak pamiętać, że serwer źródłowy i docelowy powinny mieć tę samą główną wersję serwera.

Oto kroki, aby porównać dwa schematy za pomocą narzędzia Schema Diff.

1. Kliknij Różnica schematu opcja, w sekcji Narzędzia menu.

2. Pojawi się formularz, w którym należy wybrać źródło i cel

3. Wybierz wersje serwerów, serwery źródłowe i docelowe oraz bazę danych/schemat w zależności od wymagań.

4. Kliknij Porównaj, aby porównać dwie bazy danych/schematy. Zobaczysz szczegółową listę wyników porównania obiektów, a następnie wynik porównania DDL

5. Wynik porównania obiektów jest prezentowany w postaci drzewa, które można kliknąć, aby rozwinąć/zwinąć.

6. Wyniki porównania DDL przedstawiono w 3 panelach. W lewym panelu znajdziesz zapytania SQL schematu źródłowego. W środkowym panelu znajdują się instrukcje SQL dla schematu docelowego. A w prawym panelu znajdziesz różnicę między instrukcjami SQL dwóch schematów.

7. Znajdziesz wiele opcji doprecyzowania wyników porównania, takich jak Edytor zapytań, Generator skryptów i filtry.


pgAdmin Schema diff jest znacznie bardziej wszechstronny niż porównanie schematów oparte na SQL i jest wysoce zalecane. Mamy nadzieję, że ten artykuł pomoże Ci porównać dwa schematy w PostgreSQL.

Ubiq ułatwia wizualizację danych i monitorowanie ich w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj Ubiq za darmo.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:Utwórz tabelę, jeśli nie istnieje AS

  2. Napraw „INSERT ma więcej wyrażeń niż kolumn docelowych” w PostgreSQL

  3. Hibernuj UUID z PostgreSQL i SQL Server

  4. Mapuj pole punktu geometrii PostGIS za pomocą Hibernate na Spring Boot

  5. Tablica zagregowana Postgresql