是否可以让9.0版本的pg_dump提供向后兼容的转储,或者强制8.3版本的pg_restore使用该转储?
换句话说,在还原由9.0生成的转储时,如何解决与pg_restore 8.3不兼容的错误?
pg_restore: [archiver] unsupported version (1.12) in file header
这个转储/还原版本冲突可能会有哪些潜在问题?
是否可以让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_dump mydb > db.sql
psql -d newdb -f db.sql
这应该可以正常工作,因为它不存储版本信息,并且在转储中使用纯SQL格式。数据通过COPY进行恢复,因此速度很快。如果您在数据库中使用了一些9.0功能,则必须手动编辑转储中的模式以使其在8.3上正常工作。但是,BLOB可能无法在此格式下恢复;我没有测试过。
CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql
,而 8.3 版本仅支持 CREATE LANGUAGE plpgsql
。 - Konrad Garus