我已经在数据库上运行了pg_dump,并使用pg_restore还原到了一个新的完全空的数据库中,并且出现错误:
pg_restore: [archiver (db)] could not execute query: ERROR: could not create unique index "bibleverses_userversestatus_pkey"
DETAIL: Table contains duplicated values.
检查还原后的表将显示重复的主键值,这将阻止创建索引。
但是,检查pg_dump所来自的原始数据库并不会显示此重复的行-一切都应按原样进行(由于约束而必须如此)。
这怎么发生,如何解决?
((这是一个持续的错误,不是一个永久的错误-再次运行pg_dump无法解决该问题。)
编辑:对不起,忘记了版本信息:pg_dump / postgres 8.3.11,pg_restore 9.1.6
首先要弄清楚这一点,您将不得不花一些时间处理转储文件,并找出正在发生的情况。我的直接猜测是,也许两个备份会串联在一起。但是这里有一些东西要看:
还原该数据库的所有会话都必须在psql还原期间将其吊销,否则将产生重复的条目问题