我正在尝试生成一个 SQL 脚本,该脚本将重新创建我在安装 PostgreSQL 时拥有的数据库,但我还没有成功。
我可以使用以下命令创建我的数据库的备份文件:
"C:\Program Files\PostgreSQL\14\bin\pg_dump" -U postgres -p 5432 -W -F p -h localhost TEST_DB > C:\Postgres_DB_Backups\TEST_DB.sql
当我打开这个文件(我的数据库的备份)并尝试在 pgAdmin 中运行该文件时,我收到“PostgreSQL 恢复错误:“x”处或附近的语法错误”。
不确定是什么导致了该错误,因为我所做的只是备份数据库并且没有进行其他更改。我在堆栈溢出上搜索了类似的问题,我所看到的只是它可能是一个编码问题,但如果这确实是问题,它没有提到任何解决问题的方法。
我到底做错了什么?在 PostgreSQL 中备份数据库的最佳方法是什么?
不要在带有
pg_dump
. shell 将有助于“纠正”编码问题并破坏您的转储。相反,使用以下-f
选项指定输出文件名:恢复使用
psql
,它还支持-f
:在这个问题中看到了类似的问题: issues with encoding and pg_dump/restore between windows and linux
生成的转储
pg_dump
不能在 pgAdmin 中作为 SQL 脚本运行,因为它混合了COPY
语句和数据。如果您使用 的--inserts
选项pg_dump
,您可能会有更多的运气。