A volte potrebbe essere necessario confrontare due schemi in PostgreSQL. È possibile utilizzare una query SQL per ottenere ciò, oppure utilizzare uno dei tanti strumenti di terze parti che consentono di confrontare due schemi in PostgreSQL. In questo articolo esamineremo entrambi i modi per confrontare due schemi in PostgreSQL.
Come confrontare due schemi in PostgreSQL
Vedremo due modi per confrontare due schemi in PostgreSQL:usando le query SQL e usando pgAdmin.
Confronta due schemi utilizzando SQL
Ecco la query SQL per confrontare due schemi. Sostituisci schema1 e schema2 con i nomi di due schemi che vuoi confrontare.
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 query precedente elenca sostanzialmente tutte le righe presenti in uno degli schemi con informazioni sulla sua presenza/assenza nell'altro schema.
- nome_tabella – nome della tabella presente in schema1 o schema2
- colonna_tabella – nome della colonna presente in schema1 o schema2
- schema1 – se la colonna esiste nello schema1 viene visualizzato il suo nome, altrimenti è nullo.
- schema2 – se la colonna esiste in schema2 il suo nome viene visualizzato, altrimenti è nullo.
Confronta due schemi in pgAdmin
Utilizzeremo lo Schema Diff funzionalità di pgAdmin per confrontare schemi o database o altri oggetti.
Lo strumento Schema diff consente di tracciare la differenza tra due oggetti di database ed elencare le diverse istruzioni SQL per sincronizzare i database.
Tuttavia, tieni presente che i server di origine e di destinazione dovrebbero essere della stessa versione del server principale.
Di seguito sono riportati i passaggi per confrontare due schemi utilizzando lo strumento Schema Diff.
1. Fare clic su Differenza schema opzione, in Strumenti menu.
2. Vedrai un modulo in cui devi selezionare Origine e Destinazione

3. Seleziona le versioni del server, i server di origine e di destinazione e il database/schema in base alle tue esigenze.
4. Fare clic su Confronta per confrontare due database/schemi. Verrà visualizzato un elenco dettagliato dei risultati del confronto degli oggetti, seguito dal risultato del confronto DDL

5. Il risultato del confronto degli oggetti viene presentato come un albero, su cui è possibile fare clic per espandere/comprimere.
6. I risultati del confronto DDL sono presentati in 3 pannelli. Nel pannello di sinistra troverai le query SQL dello schema di origine. Nel pannello centrale sono presenti le istruzioni SQL per lo schema di destinazione. E nel pannello di destra troverai la differenza tra le istruzioni SQL di due schemi.
7. Troverai molte opzioni per perfezionare i risultati del confronto come Editor di query, Generatore di script e filtri.
pgAdmin Schema diff è molto più completo del confronto di schemi basato su SQL ed è altamente raccomandato. Si spera che questo articolo ti aiuti a confrontare due schemi in PostgreSQL.
Ubiq semplifica la visualizzazione dei dati e il monitoraggio in dashboard in tempo reale. Prova Ubiq gratuitamente.