2013-05-07 57 views
0

我想從postgres文件恢復數據。我有一個文件,當我在記事本中打開文件時,該文件的版本是9.1.7 PostgreSQL,並且該文件包含所有表結構和數據庫,但文件沒有擴展名。我想將文件中的所有表結構和數據恢復到我的PostgreSQL 8.4版本數據庫,因爲我的項目基於PostgreSQL 8.4版本。將數據從9.1.7版本postgres文件恢復到8.4版本postgres

我該怎麼做?

+0

你到目前爲止嘗試了什麼?你使用pg_restore或psql有什麼錯誤? – 2013-05-07 09:43:56

+0

當我嘗試打開文件像SQL腳本時,它會生成一個錯誤時惰性表中的數據。 – 2013-05-07 09:55:18

回答

2

重新指定文件類型:如果以「PGDMP」開頭,則它是PostgreSQL自定義格式轉儲,必須使用pg_restore命令進行恢復。否則,它很可能是一個普通的SQL轉儲,並且在開始時會有這樣的評論。

較新的PostgreSQL的轉儲不會恢復到較舊的PostgreSQL版本。你必須要麼你的項目升級到9.1(你爲什麼要使用這樣的老版本8.4的新工作呢?)或:

  • 安裝PostgreSQL 9.1
  • 轉儲恢復到PostgreSQL 9.1
  • 使用PostgreSQL 8.4的pg_dump轉儲9.1數據庫
  • 恢復的結果到您的數據庫8.4

都顯得太硬?然後將您的項目升級到最新版本。降級主要版本之間的PostgreSQL並不真正支持或推薦。

BTW,始終顯示錯誤消息確切文本,而非描述你在記事本中看到,請向我們展示了一些太所以我們可以清楚地看到那裏的東西,不只是你一個什麼樣的存在解釋。

+0

現在我安裝postgresSQL 9.1,但是當我嘗試恢復文件時,它會產生錯誤,「這是文本文件愚蠢」。 – 2013-05-07 10:28:08

+1

@HarmeetSingh這不是PostgreSQL產生的錯誤。請顯示*完整的確切錯誤消息文本*以及您如何運行恢復。如果您正在翻譯其他語言,請隨時展示原始未翻譯的錯誤,那麼對我進行反向翻譯比猜測錯誤的真實性更容易。 – 2013-05-07 10:30:20

+0

錯誤是「C:/ Program Files/PostgreSQL/9.2/bin \ pg_restore.exe --host localhost --port 5432 --username」postgres「--dbname」old_qrata「--no-password --list」 C:\ Users \ Nanaksar \ Desktop \ Qrata PPT \ old_qrata_db_bckup「 pg_restore:[archiver]輸入文件看起來是文本格式轉儲請使用psql 進程返回退出代碼1.」但Manullay我已經做了導入da數據。 – 2013-05-07 12:32:25

相關問題