Я пытаюсь восстановить файл дампа, но это вызвало ошибку:
psql:psit.sql:27485: invalid command \N
Есть ли решение? Я искал, но не получил внятного ответа.
sql
postgresql
dump
Вивек Викрант
источник
источник
create table...
при запуске произошел сбой, но загрузка продолжается.(pg_restore ... | psql ...) 2>&1 | less
Такое же сообщение об ошибке появляется при попытке восстановления из двоичного дампа. Я просто
pg_restore
восстанавливал свой дамп и полностью избегал\N
ошибок, напримерpg_restore -c -F t -f your.backup.tar
Расшифровка переключателей:
-f, --file=FILENAME output file name -F, --format=c|d|t backup file format (should be automatic) -c, --clean clean (drop) database objects before recreating
источник
Я знаю, что это старый пост, но я нашел другое решение: postgis не был установлен в моей новой версии, что вызвало у меня ту же ошибку на pg_dump
источник
Я тоже сталкивался с этой ошибкой в прошлом. Павел прав, обычно это признак того, что что-то в скрипте, созданном pg_restore, не работает. Из-за всех ошибок «/ N» вы не видите реальной проблемы в самом начале вывода. Я предлагаю:
pg_restore --table=orders full_database.dump > orders.dump
)orders.dump
и удалить кучу записей)В моем случае у меня еще не было установлено расширение "hstore", поэтому скрипт давал сбой на самом верху. Я установил hstore в целевую базу данных и вернулся к работе.
источник
Вы можете сгенерировать дамп с помощью операторов INSERTS с параметром --inserts.
источник
Установите postgresql- (ваша версия) -postgis-scripts
источник
То же самое случилось со мной сегодня. Я решил проблему, выполнив сброс с помощью команды --inserts.
Что я делаю:
1) pg_dump со вставками:
2) psql (восстановить ваш дамповый файл)
Примечание-1) Убедитесь, что добавление выходного файла увеличит скорость импорта.
Примечание-2) Не забудьте создать таблицу с точно таким же именем и столбцами перед импортом с помощью psql.
источник
По моему недавнему опыту, эту ошибку можно получить, когда настоящая проблема не связана с escape-символами или новой строкой. В моем случае я создал дамп из базы данных A с
pg_dump -a -t table_name > dump.sql
и пытался восстановить его в базу данных B с помощью
psql < dump.sql
(после обновления правильных переменных env, конечно). Вконце концов я понял, что дамп, хотя и был
data-only
(-a
вариант , так что структура таблицы явно не является частью дампа), была специфичной для схемы. Это означало, что без изменения дампа вручную я не мог использовать созданный дампschema1.table_name
для заполненияschema2.table_name
. Изменить дамп вручную было несложно, схема указывается в первых 15 строках или около того.источник
В большинстве случаев решение заключается в установке
postgres-contrib
package.источник
Для меня, использующего postgreSQL 10 в SUSE 12, я решил
invalid command \N
ошибку, увеличив дисковое пространство. Недостаток места на диске вызывал ошибку. Вы можете определить, нет ли у вас места на диске, если взглянуть на файловую систему, в которую собираются данные вdf -h
выводе. Если файловая система / монтирование используется на 100%, после выполнения чего-то вродеpsql -f db.out postgres
(см. Https://www.postgresql.org/docs/current/static/app-pg-dumpall.html ) вам, вероятно, потребуется увеличить доступное дисковое пространство ,источник
У меня была та же проблема, я создал новую базу данных и приступил
invalid command \N
к восстановлению с помощью psql. Я решил это, установив то же табличное пространство со старой базой данных.Например, в старой резервной копии базы данных было табличное пространство «pg_default», я определил то же табличное пространство для новой базы данных, и указанная выше ошибка исчезла!
источник
Я последовал всем этим примерам, и все они потерпели неудачу с ошибкой, о которой мы говорим:
Скопировать таблицу из одной базы данных в другую в Postgres
Сработал синтаксис с -C , см. Здесь:
источник