Вы можете получить таблицы, запросив представление information_schema.tables:
dwh=> \d information_schema.tables
View "information_schema.tables"
Column | Type | Modifiers
------------------------------+-----------------------------------+-----------
table_catalog | information_schema.sql_identifier |
table_schema | information_schema.sql_identifier |
table_name | information_schema.sql_identifier |
table_type | information_schema.character_data |
self_referencing_column_name | information_schema.sql_identifier |
reference_generation | information_schema.character_data |
user_defined_type_catalog | information_schema.sql_identifier |
user_defined_type_schema | information_schema.sql_identifier |
user_defined_type_name | information_schema.sql_identifier |
is_insertable_into | information_schema.character_data |
is_typed | information_schema.character_data |
commit_action | information_schema.character_data |
и аналогичное представление для столбцов: information_schema.columns. Более того, psql имеет опцию -E, которая показывает скрытые запросы, то есть запросы, выдаваемые такими командами psql, как '\ d', ...
Postgres имеет команду COPY (http://www.postgresql.org/docs/8.4/interactive/sql-copy.html), но вы должны быть суперпользователем базы данных (postgres), чтобы использовать ее с файлами (вы можете использовать COPY ... TO STOOUT HEADER CSV).
скрипт быстрой и грязной оболочки:
psql ... -A -t -U dwh -c "select '\\\copy ' || table_name || ' to ''' || table_name || '.csv'' csv header' from information_schema.tables" | psql ...
Вы должны заменить '...' параметрами подключения