PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да сравним две схеми в PostgreSQL

Понякога може да се наложи да сравните две схеми в PostgreSQL. Можете да използвате SQL заявка, за да постигнете това, или да използвате един от многото инструменти на трети страни, които ви позволяват да сравнявате две схеми в PostgreSQL. В тази статия ще разгледаме двата начина за сравнение на две схеми в PostgreSQL.


Как да сравним две схеми в PostgreSQL

Ще разгледаме два начина за сравняване на две схеми в PostgreSQL – чрез SQL заявки и чрез pgAdmin.


Сравнете две схеми с помощта на SQL

Ето SQL заявката за сравнение на две схеми. Заменете schema1 и schema2 с имената на две схеми, които искате да сравните.

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;

Горната заявка основно изброява всички редове, присъстващи в която и да е схема, с информация за нейното присъствие/отсъствие в другата схема.

  • име_на_таблица – име на таблица, присъстваща в схема 1 или схема 2
  • колона_таблица – име на колона, присъстваща в схема 1 или схема 2
  • схема1 – ако колоната съществува в схема 1 нейното име се показва, в противен случай е нула.
  • схема2 – ако колоната съществува в schema2 нейното име се показва, в противен случай е нула.


Сравнете две схеми в pgAdmin

Ще използваме Разликата на схемата функция на pgAdmin за сравняване на схеми или бази данни или други обекти.

Инструментът Schema diff ви позволява да проследите разликата между два обекта на база данни и да изброите различните SQL изрази за синхронизиране на бази данни.

Моля, имайте предвид обаче, че изходният и целевият сървър трябва да са с една и съща основна версия на сървъра.

Ето стъпките за сравняване на две схеми с помощта на инструмента Schema Diff.

1. Щракнете върху Разлика на схемата опция под Инструменти меню.

2. Ще видите формуляр, в който трябва да изберете Източник и Цел

3. Изберете версии на сървъра, изходни и целеви сървъри и база данни/схема в зависимост от вашите изисквания.

4. Щракнете върху Сравни, за да сравните две бази данни/схеми. Ще видите подробен списък с резултати за сравнение на обекти, последван от резултат за сравнение на DDL

5. Резултатът от сравнението на обектите се представя като дърво, върху което можете да щракнете, за да разгънете/свиете.

6. Резултатите за сравнение на DDL са представени в 3 панела. В левия панел ще намерите SQL заявки на изходна схема. В средния панел имате SQL изрази за целева схема. И в десния панел ще намерите разликата между SQL изразите на две схеми.

7. Ще намерите много опции за прецизиране на резултатите от сравнението, като например редактор на заявки, генератор на скриптове и филтри.


pgAdmin Schema diff е много по-изчерпателен от сравнението на схеми, базирани на SQL, и е силно препоръчителен. Надяваме се, че тази статия ще ви помогне да сравните две схеми в PostgreSQL.

Ubiq улеснява визуализирането на данни и наблюдението им в табла за управление в реално време. Опитайте Ubiq безплатно.

  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

  2. АКТУАЛИЗИРАНЕ с ORDER BY

  3. Формулата на коефициента на корелация на Пиърсън в SQL

  4. Вертикално мащабиране на PostgreSQL

  5. IS NOT NULL тестът за запис не връща TRUE, когато е зададена променлива