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

Исключить таблицу во время pg_restore

ОБНОВЛЕНИЕ: удалось исключить данные в таблице во время команды pg_dump. Делает это даже быстрее, чем пытаться не загружать данные, потому что вам не нужно ждать, пока эти данные будут сброшены.

--exclude-table-data=event_logs

(PostgreSQL) 9.4.4

Кто-нибудь знает, как исключить таблицу при выполнении pg_restore? Я могу найти, как это сделать при выполнении pg_dump. Однако я не тот, кто делает дамп и не может их исключить.

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

4b9b3361

Ответ 1

У pg_restore нет параметра таблицы исключений, у него есть параметр таблицы включения.

-t стол

- -t = таблица состояния

Восстановить определение и/или данные только именованной таблицы. Несколько таблиц могут быть указаны с несколькими переключателями -t. Это можно комбинировать с опцией -n для указания схемы.

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

Ответ 2

У меня была та же проблема. Список длинной таблицы, и я хочу исключить данные из нескольких таблиц.

Я сделал следующее:

Run

pg_restore -l $pgdump_file > restore.pgdump.list

Откройте этот restore.pgdump.list файл в редакторе и вставьте ; перед строкой, в которой

;2429; 0 27550 TABLE DATA public <table_to_explore> <database>

После сохранения этого файла он теперь можно использовать для импорта, где все строки, начинающиеся с ;, игнорируются.

pg_restore -L restore.pgdump.list | psql

Вы можете сделать однострочный файл, чтобы добавить ; перед строками, имеющими конкретное имя таблицы, если вы полностью хотите игнорировать определенную таблицу.

man pg_restore также рассказывает об этом в примере в конце документации.

Ответ 3

тут команда не сработала:

pg_restore -L restore.pgdump.list | psql

ответил Джеспер Гранн Лаурсен!

Здесь это работает, следуя следующей последовательности:

pg_restore -l $pgdump_file > restore.pgdump.list

;2429; 0 27550 TABLE DATA public <table_to_explore> <database>

pg_restore -v -L restore.pgdump.list -d dbname pgdump.file