Подтвердить что ты не робот

Создание дампа базы данных для конкретных таблиц и записей Postgres

У меня есть база данных с сотнями таблиц, мне нужно сделать, это экспортировать указанные таблицы и вставить инструкции для данных в один файл sql.

Единственное, что я знаю, может это сделать.

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

Должен ли я запускать этот оператор для каждой таблицы или есть способ запуска аналогичного оператора для экспорта всех выбранных таблиц в один большой sql большой. Pg_dump выше не экспортирует только схему таблиц, мне нужны оба

Любая помощь будет оценена.

4b9b3361

Ответ 1

Справа от руководства: "Несколько таблиц можно выбрать, написав несколько переключателей -t"

Так что вам нужно перечислить все ваши таблицы

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

Обратите внимание, что если у вас есть несколько таблиц с одинаковым префиксом (или суффиксом), вы также можете использовать подстановочные знаки, чтобы выбрать их с параметром -t:

"Кроме того, параметр таблицы интерпретируется как шаблон в соответствии с теми же правилами, которые используются командами psql\d"

Ответ 2

Если эти конкретные таблицы соответствуют определенному регулярному выражению, вы можете использовать регулярное выражение в опции -t в pg_dump.

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

Например, для дампа таблиц, которые начинались с "теста", вы можете использовать

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