PostgreSQL: восстановление базы данных из дампа - синтаксическая ошибка
Я пытаюсь восстановить базу данных PostgreSQL, выполнив SQL, созданный pg_dump, в пустой базе данных.
Я получаю эту ошибку:
ERROR: syntax error at or near "\"
LINE 5211: \.
строки 5210 и 5211:
COPY auth_group (id, name) FROM stdin;
\.
Он отлично работает на моем Linux-сервере, где я использую эту команду:
psql -U dbname < dumpfile.sql
но в Windows я не уверен, как сделать то же самое, поэтому я пытался запустить dumpfile sql из утилиты запросов pgAdminIII.
Какой рекомендуемый способ импорта db из дампа в Windows? Или: как решить эту проблему синтаксиса?
Любая помощь очень ценится!
Martin
Ответы
Ответ 1
Аргумент -f filename
в psql будет читаться в файле, поэтому вам не нужно его обходить. psql should быть включенным в каталог PostgreSQL bin в окнах. Например:
psql -d dbname -U username -f dumpfile.sql
Возможно, вам придется включить полный путь к исполняемому файлу psql, если он не на вашем пути, и возможно добавить ".exe" в psql, так что это "psql.exe".
Также убедитесь, что вы не уходите в номера версий, перед запуском проблем с синтаксисом (например, не экспортируйте базу данных 8.4 и не загрузите ее в базу данных 8.1). Если это так, вам может потребоваться вручную отредактировать файл дампа.
Ответ 2
попробуйте с psql -d dbname -U user -f dumpfile.sql