2011-09-09 9 views
51

Ho un database con centinaia di tabelle, quello che devo fare è esportare le tabelle specificate e inserire istruzioni per i dati in un file sql.Creazione di un dump del database per tabelle e voci specifiche Postgres

L'unica dichiarazione che conosco in grado di raggiungere questo obiettivo è

pg_dump -D -a -t zones_seq interway > /tmp/zones_seq.sql 

Devo correre questa dichiarazione per ciascuno e per ogni tavolo o c'è un modo per eseguire un'istruzione simile a esportare tutte le tabelle selezionate in un unico grande sql grande . Il pg_dump sopra non esporta gli inserimenti dello schema della tabella, ho bisogno di entrambi

Qualsiasi aiuto sarà apprezzato.

risposta

89

Fin dal manual: "Più tabelle possono essere selezionati scrivendo -t multipla passa"

quindi è necessario elencare tutte le tabelle

pg_dump -D -a -t zones_seq -t interway -t table_3 ... > /tmp/zones_seq.sql 

Si noti che se si dispone di più tabella con lo stesso prefisso (o suffisso) è possibile utilizzare anche caratteri jolly per selezionarli con il parametro -t:

"Inoltre, la tabella parametro viene interpretato come un pattern in base alle stesse regole utilizzate dai comandi \ d di psql "

+11

l'interruttore -T è allo stesso modo, ma utilizzato per escludere le tabelle. Potrebbe essere utile se avete bisogno di tutte, tranne una o due tabelle, ecc. –

+3

L'opzione '-D' sembra essere scomparsa nel PG 9.1 in poi – Epigene

+3

L'opzione' -D' è stata [rimossa nella versione 8.4] (https: // www. postgresql.org/docs/8.4/static/release-8-4.html#AEN98016). Adesso devi usare '--column-inserts'. – mlovic

16

Se tali tabelle specifiche corrispondono a un'espressione regolare, è possibile utilizzare la regex in -t opzione in pg_dump.

pg_dump -D -a -t zones_seq -t interway -t "<regex>" -f /tmp/zones_seq.sql <DBNAME> 

Ad esempio, per scaricare le tabelle che è iniziato con "test", è possibile utilizzare

pg_dump -D -a -t zones_seq -t interway -t "^test*" -f /tmp/zones_seq.sql <DBNAME> 
+0

Grazie per la nota sulla regex. Un bel risparmio di tempo. –

Problemi correlati