从pg_dump 9.0到pg_restore 8.3的转换

4

是否可以让9.0版本的pg_dump提供向后兼容的转储,或者强制8.3版本的pg_restore使用该转储?

换句话说,在还原由9.0生成的转储时,如何解决与pg_restore 8.3不兼容的错误?

pg_restore: [archiver] unsupported version (1.12) in file header

这个转储/还原版本冲突可能会有哪些潜在问题?

可能是重复的问题:使用pg_restore从新版本的PostgreSQL进行恢复 - Dana the Sane
1个回答

14
创建一个纯文本的转储:
pg_dump mydb > db.sql
psql -d newdb -f db.sql

这应该可以正常工作,因为它不存储版本信息,并且在转储中使用纯SQL格式。数据通过COPY进行恢复,因此速度很快。如果您在数据库中使用了一些9.0功能,则必须手动编辑转储中的模式以使其在8.3上正常工作。但是,BLOB可能无法在此格式下恢复;我没有测试过。


记录一下 - 纯文本 pg_dump 转储 CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql,而 8.3 版本仅支持 CREATE LANGUAGE plpgsql - Konrad Garus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接