Někdy možná budete muset porovnat dvě schémata v PostgreSQL. K tomu můžete použít SQL dotaz nebo použít jeden z mnoha nástrojů třetích stran, které vám umožní porovnat dvě schémata v PostgreSQL. V tomto článku se podíváme na oba způsoby, jak porovnat dvě schémata v PostgreSQL.
Jak porovnat dvě schémata v PostgreSQL
Podíváme se na dva způsoby, jak porovnat dvě schémata v PostgreSQL – pomocí SQL dotazů a pomocí pgAdmin.
Porovnání dvou schémat pomocí SQL
Zde je dotaz SQL pro porovnání dvou schémat. Nahraďte schema1 a schema2 názvy dvou schémat, která chcete porovnat.
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;
Výše uvedený dotaz v podstatě uvádí všechny řádky přítomné v obou schématech s informacemi o jejich přítomnosti/nepřítomnosti v druhém schématu.
- název_tabulky – název tabulky přítomné ve schema1 nebo schema2
- sloupec_tabulky – název sloupce obsaženého ve schema1 nebo schema2
- schéma1 – pokud sloupec ve schématu1 existuje, zobrazí se jeho název, jinak je null.
- schéma2 – pokud sloupec ve schématu2 existuje, zobrazí se jeho název, jinak je null.
Porovnání dvou schémat v pgAdmin
Použijeme Schema Diff funkce pgAdmin pro porovnání schémat nebo databází nebo jiných objektů.
Nástroj Schema diff vám umožňuje sledovat rozdíl mezi dvěma databázovými objekty a vypisovat různé příkazy SQL pro synchronizaci databází.
Upozorňujeme však, že zdrojové a cílové servery by měly mít stejnou hlavní verzi serveru.
Zde jsou kroky k porovnání dvou schémat pomocí nástroje Schema Diff.
1. Klikněte na Rozdíl schématu v části Nástroje menu.
2. Zobrazí se formulář, kde musíte vybrat Zdroj a Cíl
3. Vyberte verze serveru, zdrojové a cílové servery a databázi/schéma v závislosti na vašem požadavku.
4. Klepnutím na Porovnat porovnejte dvě databáze/schémata. Zobrazí se podrobný seznam výsledků porovnání objektů, následovaný výsledkem porovnání DDL
5. Výsledek porovnání objektů se zobrazí jako strom, na který můžete kliknout a rozbalit/sbalit.
6. Výsledky porovnání DDL jsou uvedeny ve 3 panelech. V levém panelu najdete SQL dotazy zdrojového schématu. V prostředním panelu máte příkazy SQL pro cílové schéma. A v pravém panelu najdete rozdíl mezi SQL příkazy dvou schémat.
7. Najdete zde mnoho možností pro upřesnění výsledků porovnání, jako je editor dotazů, generátor skriptů a filtry.
pgAdmin Schema diff je mnohem obsáhlejší než porovnání schémat založených na SQL a je vysoce doporučeno. Doufejme, že vám tento článek pomůže porovnat dvě schémata v PostgreSQL.
Ubiq usnadňuje vizualizaci dat a jejich sledování na řídicích panelech v reálném čase. Vyzkoušejte Ubiq zdarma.