2011-04-04 26 views
4

是否可以指示9.0的pg_dump提供向後兼容的轉儲,或者強制8.3的pg_restore與該轉儲一起工作?pg_dump 9.0 to pg_restore 8.3

換句話說,什麼是我在解決恢復轉儲這個錯誤與9.0製作和pg_restore 8.3選項:

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

什麼是這個轉儲/恢復版本衝突的可能的警告?

+0

[使用pg \ _restore從PostgreSQL的新版本恢復]的可能重複(http://stackoverflow.com/questions/4599696/use-pg-restore-to-restore-from-a-newer-version -of-postgresql) – 2013-05-09 14:24:50

回答

12

創建一個純文本轉儲:

pg_dump mydb > db.sql 
psql -d newdb -f db.sql 

這應該工作正常,因爲它沒有存儲的版本信息,並在轉儲使用普通的SQL格式。數據通過COPY恢復,因此速度很快。如果您已經在數據庫中使用了9.0個功能,那麼您必須手動編輯轉儲中的模式才能使其在8.3上運行。然而,Blob可能無法倖免於這種格式。我沒有測試過)。

+0

用於記錄 - 純文本pg_dump轉儲'CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql' while 8.3只支持'CREATE LANGUAGE plpgsql'。 – 2011-04-05 17:13:48