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.