sql >> Databáze >  >> RDS >> PostgreSQL

Jak porovnat dvě schémata v PostgreSQL

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.

  1. Je vyhledávání RID rychlejší než vyhledávání klíčů?

  2. Kdy použít zděděné tabulky v PostgreSQL?

  3. Jak opravit „Možnost konfigurace ‚Agent XPs‘ neexistuje“ v SQL Server (T-SQL)

  4. Jak se připojit v java jako SYS k Oracle?