PostgreSQL:从转储数据库恢复 - 语法错误

Hof*_*off 26 postgresql import dump restore

我正在尝试通过在空数据库上执行pg_dump创建的SQL来恢复PostgreSQL数据库.

我收到这个错误:

ERROR:  syntax error at or near "\"
LINE 5211: \.
Run Code Online (Sandbox Code Playgroud)

第5210和5211行:

COPY auth_group (id, name) FROM stdin;
\.
Run Code Online (Sandbox Code Playgroud)

它在我的Linux服务器上工作正常,我使用此命令:

psql -U dbname <dumpfile.sql

但在Windows上,我不知道如何做同样的事情,所以我一直在尝试从pgAdminIII查询实用程序运行dumpfile的sql.

在Windows上从转储导入数据库的推荐方法是什么?或者:如何解决该语法问题?

任何帮助深表感谢!

马丁

Joh*_*ett 73

psql-f filename上的参数将在文件中读取,因此您不必将其输入.psql应该包含在Windows中的PostgreSQL的bin目录中.像这样:

psql -d dbname -U username -f dumpfile.sql
Run Code Online (Sandbox Code Playgroud)

您可能必须包含psql可执行文件的完整路径(如果它不在您的路径上),并且可能将".exe"添加到psql,因此它是"psql.exe".

另外请确保您的版本号不会下降,我之前遇到过语法问题(例如,不要导出8.4数据库并尝试将其加载到8.1数据库中).如果是这样,您可能必须手动编辑转储文件.


Kai*_*ann 28

尝试使用psql -d dbname -U user -f dumpfile.sql