Postgresql pg_restore抱怨转储上存在完整性错误。这可能吗?

Postgresql pg_restore抱怨转储上存在完整性错误。这可能吗?,postgresql,pg-restore,Postgresql,Pg Restore,我转储了一个OpenERP数据库,如下所示: pg_dump -Fc -xO -f o7db.dump o7db pg_restore -d o7db -xO -j3 o7db.dump 源计算机具有: $ pg_dump --version pg_dump (PostgreSQL) 9.3.5 Iscp将转储到目标机器(OpenVZ容器),其中pg_restore是: $ pg_restore --version pg_restore (PostgreSQL) 9.3.5 我运行pg_

我转储了一个OpenERP数据库,如下所示:

pg_dump -Fc -xO -f o7db.dump o7db
pg_restore -d o7db -xO -j3 o7db.dump
源计算机具有:

$ pg_dump --version
pg_dump (PostgreSQL) 9.3.5
I
scp
将转储到目标机器(OpenVZ容器),其中pg_restore是:

$ pg_restore --version
pg_restore (PostgreSQL) 9.3.5
我运行pg_restore时如下所示:

pg_dump -Fc -xO -f o7db.dump o7db
pg_restore -d o7db -xO -j3 o7db.dump
我能看到的唯一区别是,postgres用户在这两方面并不相同 机器(但应该由
-O
处理)。PGU恢复投诉 关于:

我不明白这是怎么可能的,因为源数据库似乎还可以

还原的数据库有许多空表(每个表的失败都会导致太长时间) 价值观):

此外,我在同一台源计算机上执行pg_还原:

pg_restore -d o7db_restore -xO -j3 o7db.dump
一切正常。没有一个警告


我该怎么办?我做错了什么?

答案实际上在

似乎目标服务器使用不同的编码创建数据库,因此在恢复之前使用UTF8创建数据库解决了问题

归功于@habe()


所以,我投票决定结束我的问题。

转储文件是从哪个PostgreSQL版本创建的?服务器版本(
SELECT version()
),而不是客户端版本,目标服务器版本是什么?另外,这两种语言的文本编码是否相同?这不重要,但让我们检查一下<代码>显示服务器编码两个。另外,请检查该输入块第172行上发生错误的实际数据值。可能重复
pg_restore -d o7db_restore -xO -j3 o7db.dump