Исключить таблицу во время pg_restore
ОБНОВЛЕНИЕ: удалось исключить данные в таблице во время команды pg_dump. Делает это даже быстрее, чем пытаться не загружать данные, потому что вам не нужно ждать, пока эти данные будут сброшены.
--exclude-table-data=event_logs
(PostgreSQL) 9.4.4
Кто-нибудь знает, как исключить таблицу при выполнении pg_restore
? Я могу найти, как это сделать при выполнении pg_dump
. Однако я не тот, кто делает дамп и не может их исключить.
В дампе есть 2 таблицы, которые действительно большие и занимают целую вечность, когда я делаю восстановление, поэтому я хочу пропустить их.
Ответы
Ответ 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