sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo comparar dos esquemas en PostgreSQL

A veces, es posible que necesite comparar dos esquemas en PostgreSQL. Puede usar una consulta SQL para lograr esto, o usar una de las muchas herramientas de terceros que le permiten comparar dos esquemas en PostgreSQL. En este artículo, veremos las dos formas de comparar dos esquemas en PostgreSQL.


Cómo comparar dos esquemas en PostgreSQL

Veremos dos formas de comparar dos esquemas en PostgreSQL:usar consultas SQL y usar pgAdmin.


Comparar dos esquemas usando SQL

Aquí está la consulta SQL para comparar dos esquemas. Reemplace esquema1 y esquema2 con los nombres de dos esquemas que desea comparar.

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;

La consulta anterior básicamente enumera todas las filas presentes en cualquiera de los esquemas con información sobre su presencia/ausencia en el otro esquema.

  • nombre_tabla – nombre de la tabla presente en schema1 o schema2
  • tabla_columna – nombre de la columna presente en schema1 o schema2
  • esquema1 – si la columna existe en el esquema 1, se muestra su nombre; de ​​lo contrario, es nulo.
  • esquema2 – si la columna existe en schema2, se muestra su nombre; de ​​lo contrario, es nulo.


Compara dos esquemas en pgAdmin

Usaremos el Schema Diff característica de pgAdmin para comparar esquemas o bases de datos u otros objetos.

La herramienta Schema diff le permite rastrear la diferencia entre dos objetos de base de datos y enumerar las diferentes declaraciones SQL para sincronizar bases de datos.

Sin embargo, tenga en cuenta que los servidores de origen y de destino deben tener la misma versión de servidor principal.

Estos son los pasos para comparar dos esquemas usando la herramienta Schema Diff.

1. Haga clic en Diferencia de esquema opción, en Herramientas menú.

2. Verá un formulario en el que deberá seleccionar Origen y Destino

3. Seleccione las versiones del servidor, los servidores de origen y de destino y la base de datos/esquema según sus requisitos.

4. Haga clic en Comparar para comparar dos bases de datos/esquemas. Verá una lista detallada del resultado de la comparación de objetos, seguido del resultado de la comparación DDL

5. El resultado de la comparación de objetos se presenta como un árbol, en el que puede hacer clic para expandir/contraer.

6. Los resultados de la comparación de DDL se presentan en 3 paneles. En el panel izquierdo encontrará consultas SQL del esquema de origen. En el panel central, tiene las instrucciones SQL para el esquema de destino. Y en el panel derecho, encontrará la diferencia entre las declaraciones SQL de dos esquemas.

7. Encontrará muchas opciones para refinar los resultados de la comparación, como el Editor de consultas, el generador de secuencias de comandos y los filtros.


pgAdmin Schema diff es mucho más completo que la comparación de esquemas basada en SQL y es muy recomendable. Con suerte, este artículo lo ayudará a comparar dos esquemas en PostgreSQL.

Ubiq facilita la visualización de datos y la supervisión en paneles en tiempo real. Prueba Ubiq gratis.