2011-12-28 10 views

Odpowiedz

6

Standardowy sposób eksportowania schematu bazy danych jest pg_dump:

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

Sligtly lepszy sposób łączy pg_dump z filtrowaniem pg_restore listy:

#!/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 

Jeśli wolisz GUI kreatorów, komenda pg_dump mogą być generowane w PgAdmin III:

  • ri ght kliknij bazę danych w przeglądarce obiektów, wybierz "Kopia zapasowa"
  • wybierz plik docelowy pliku (wspólne rozszerzenie to .sql lub .txt)
  • Wybierz format "Zwykły". (Czyli format tekstowy)
  • na "Dump Opcje # 1" kartę, zaznaczyć "Only schematu"
  • kliknij "Backup"

Uwaga: plik wynikowy będzie miał nie tylko stoły, ale także wszystkie inne obiekty (widoki, funkcje itp.). Jeśli potrzebujesz tylko minimalnego wydruku, możesz edytować ten plik w edytorze tekstu i usuwać niepotrzebne rzeczy. Pozostaw tylko "Typ: TABELA;" przedmiotów.

+0

To powinno być 'pg_dump' nie' psql' –

+0

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

+0

Użyj '', aby uniknąć szarego kodu. – ben

1

Możesz je wykonywać po jednym na raz, gdy ich potrzebujesz. Kliknij prawym przyciskiem myszy tabelę w pgAdminIII, przejdź do Reports i wybierz "Data Dictionary Report".

Dla formatu wyjściowego wybierz "XHTML 1.0 Transitional", wybierz opcję "Osadź domyślny arkusz stylów", nadaj mu nazwę pliku i kliknij OK.

Otwórz plik XML w przeglądarce i wydrukuj.

+0

Co powiesz na dane? –

+0

Czy istnieje programowalny sposób uruchomienia odpowiednika pgAdminIII "Data Dictionary Reports" na wszystkich tabelach w schemacie? – pdog

3

Jeśli jesteś w systemie Windows i pgAdmin, powinieneś mieć plik psql gdzieś w C:\Program files\postgresql\<version>\bin\psql.

Uruchom psql, a następnie masz \d, który drukuje wszystkie tabele i indeksy oraz \d <table_name>, który podaje szczegóły dotyczące jednej tabeli.