无法使用 pg_restore 恢复 Postgres 的转储备份文件

Can't restore a dump backup file for Postgres using pg_restore

我使用这个为我的 Postgres 9.3.4 生成了一个转储备份文件:

pg_dump table_name -U myusername -h localhost -O > backup.dump

现在我正在尝试使用以下方法备份旧数据库:

pg_restore -U myusername -n public -d table_name  backup.dump

但我不断收到此错误:

pg_restore: [archiver] input file appears to be a text format dump. Please use psql.

请注意,该文件不是纯 sql 文件,因为我使用 pg_dump 生成了它。

我使用了以下命令:

psql perchwell -U myusername -f backup.dump -v ON_ERROR_STOP=1

并开始收到以下错误:

SET
SET
SET
SET
SET
SET
psql:backup.dump:16: ERROR:  schema "propertydir" already exists

pg_dump的默认输出格式实际上是纯文本sql脚本。因此,使用 psql 进行导入或使用 -Fc 标志重新转储。

您的错误:pg_restore:[archiver] 输入文件似乎是文本格式转储。请使用 psql

错误指示使用 psql 命令导入数据库。

cat your-dump-pg-file.dump | psql -d your-database

这样,您可以轻松恢复文件

另外如果设置字符集为UTF-8,导入效果也会更好。