2014-06-16 84 views
0

我運行下面的命令來我的生產服務器上創建的所有數據庫的轉儲:嘗試恢復生產的PostgreSQL數據庫爲開發框

prodserver:/# pg_dumpall -U postgres -h 1.1.1.1 > prod.sql 

我的發展中,我還需要通過備份這樣做的:

devserver:/# pg_dumpall -U postgres -h 1.1.1.1 > dev.sql 

然後我嘗試恢復生產數據庫上的發展,像這樣:

devserver:/# psql -f prod.sql -U postgres 

它沒有錯誤地運行。它似乎在創建表/導入數據。我知道,因爲如果我第二次運行它,我會收到某些數據已經存在/關係已經存在的消息。

但是,當我登錄像這樣:

psql -U postgres -d databasename 

數據看上去與老開發數據。我試圖用所謂恢復生產數據如下:

select count(*) from widgets; 

我比較,與當我使用的開發數據庫和他們是一樣的返回計數。 看起來數據庫沒有正確恢復。

我必須:

  • 一)刪除之前,我恢復生產開發databsae?
  • b)重新啓動 postgresql?

我一直在使用http://www.postgresql.org/docs/9.1/static/app-pg-dumpall.html作爲指導...... 我指的是在頁面底部的例子。

任何關於我可能會做錯的建議將不勝感激。

謝謝。

編輯1

我還檢查以下內容:

我打開了prod.sql文件,發現插入語句,如:

INSERT INTO widgets_to_wiget_groups VALUES (363, 15); 

然後我做了一個select語句在數據庫中看看我是否在表中有這個條目,但我不......可能它正在恢復它,但在另一個用戶的上下文中?

回答

0

我不得不跑

CREATE DATABASE數據庫名稱;

手動創建分貝,然後改變了恢復命令:

devserver:/# psql -f prod.sql -U postgres -d databasename