2011-12-28 10 views

risposta

6

Il metodo standard di esportare schema del database è pg_dump:

#!/bin/sh 
pg_dump --schema-only MYDBNAME > output-file.sql 

Leggermente migliore modo combina pg_dump con filtraggio pg_restore lista:

#!/bin/sh 
dump=`mktemp` 
list=`mktemp` 
pg_dump --schema-only MYDBNAME -Fc -f $dump 
pg_restore -l $dump | grep ' TABLE ' > $list 
pg_restore -L $list $dump > output-file.sql 
rm $list $dump 

Se preferite le procedure guidate GUI, il comando pg_dump può essere generato in PgAdmin III:

  • ri ght fare clic sul database nel browser degli oggetti, selezionare "Backup"
  • selezionare nomefile di destinazione (estensione comune è .sql o .txt)
  • Scegliere il formato "Normale". (Cioè, formato testo)
  • su "Dump Opzioni # 1" scheda, spuntare "Solo Schema"
  • click "Backup"

Nota: il file risultante avrà non solo le tabelle, ma anche tutti gli altri oggetti (viste, funzioni, ecc.). Se è necessaria solo la stampa minima, è possibile modificare questo file nell'editor di testo e rimuovere elementi non necessari. Lascia solo "Tipo: TABELLA;" elementi.

+0

Questo dovrebbe essere 'pg_dump' not' psql' –

+0

thx @ a-horse-with-no-name, corretto – filiprem

+0

Utilizzare '' per evitare il codice in grigio. – ben

1

È possibile eseguirli uno alla volta in base alle proprie esigenze. Fai clic destro su una tabella in pgAdminIII, vai a Rapporti e seleziona "Rapporto Dizionario dati".

Per il formato di output, selezionare "Transitional XHTML 1.0", selezionare l'opzione "Incorpora il foglio di stile predefinito", assegnargli un nome file e fare clic su OK.

Aprire il file XML nel browser e stampare.

+0

Come va con i dati? –

+0

Esiste un modo programmatico per eseguire l'equivalente di pgAdminIII "Rapporti del dizionario dati" su tutte le tabelle all'interno di uno schema? – pdog

3

Se si utilizza Windows e pgAdmin, è necessario avere psql da qualche parte in C:\Program files\postgresql\<version>\bin\psql.

Eseguire psql e quindi si dispone di \d che stampa tutte le tabelle e gli indici e \d <table_name> che fornisce dettagli su una tabella.