Używam phpPgAdmin w przeglądarce i PgAdmin III dla Windows. Czy mimo to można pobrać wydruk struktury tabeli dla całej bazy danych?Jak wydrukować strukturę tabeli z postgresql?
Odpowiedz
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.
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.
Co powiesz na dane? –
Czy istnieje programowalny sposób uruchomienia odpowiednika pgAdminIII "Data Dictionary Reports" na wszystkich tabelach w schemacie? – pdog
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.
To powinno być 'pg_dump' nie' psql' –
thx @ a-horse-with-no-name, poprawione – filiprem
Użyj '', aby uniknąć szarego kodu. – ben