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.