Come esportare la struttura e i dati di una tabella Postgres

Cerca
Se hai la necessità di esportare una singola tabella PostgreSQL, pg_dump mette a disposizione diverse opzioni che consentono di salvare solamente la struttura della tabella, solamente i dati oppure entrambe. Di seguito vediamo i tre casi più comuni.

Riepilogo dei comandi

OperazioneComando
Solo strutturapg_dump --schema-only
Struttura + datipg_dump
Solo datipg_dump --data-only

Esportare solamente la struttura di una tabella

Se desideri esportare esclusivamente lo schema della tabella (CREATE TABLE, indici, vincoli, ecc.) senza includere i dati, utilizza l’opzione --schema-only.

				
					pg_dump -U username -d database -t nome_tabella --schema-only > struttura.sql
				
			
Il file struttura.sql conterrà solamente le istruzioni SQL necessarie per ricreare la tabella.

Esportare struttura e dati

Per esportare sia la definizione della tabella che il suo contenuto è sufficiente utilizzare pg_dump senza opzioni aggiuntive.

				
					pg_dump -U username -d database -t nome_tabella > completo.sql
				
			

Il file generato potrà essere utilizzato per ricreare completamente la tabella, compresi tutti i record presenti al momento dell’esportazione.

Esportare solamente i dati

Nel caso in cui la struttura della tabella esista già e sia necessario esportare esclusivamente i record, è possibile utilizzare l’opzione --data-only.

				
					pg_dump -U username -d database -t nome_tabella --data-only > dati.sql
				
			

Il file risultante conterrà solamente le istruzioni INSERT, senza alcun comando relativo alla creazione della tabella.

Esportare una tabella appartenente a uno schema

Se la tabella da esportare appartiene a uno schema diverso da quello predefinito, è possibile specificare il nome dello schema direttamente tramite l’opzione -t.

				
					pg_dump -U username -d database -t schema.nome_tabella > completo.sql
				
			

Ad esempio, per esportare la tabella ordini appartenente allo schema vendite:

				
					pg_dump -U username -d database -t vendite.ordini > completo.sql
				
			

In questo modo pg_dump esporterà esclusivamente la tabella indicata all’interno dello schema specificato.

Importare il dump

Per ripristinare uno dei file generati è sufficiente utilizzare psql.

				
					psql -U username -d database < struttura.sql
				
			
				
					psql -U username -d database < completo.sql
				
			
				
					psql -U username -d database < dati.sql
				
			

Conclusione

Con pg_dump è possibile esportare rapidamente una singola tabella PostgreSQL scegliendo se includere solamente la struttura, solamente i dati oppure entrambe. È una funzionalità particolarmente utile per migrare tabelle tra database, creare backup mirati o condividere dati senza esportare l’intero database.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

Most Recent
Partners