2015-11-24 55 views
0

我想知道如果我使用的是Heroku Postgres,並且我想轉儲一個App 1.0的數據,那麼我想要pg_restore數據到新版本的應用程序,App 2.0。問題是,App 2.0了新的領域和表和pg_restore的documentation寫道:herkou pg_restore到已更改的數據庫

...會發出必要的數據庫重建到 它是在保存它時的狀態的命令。

我不想重建數據庫,它是在App 1.0的狀態,我只想要得到的數據,並把它放在新的數據庫,表和我添加字段不應該與數據衝突在轉儲文件中。

一個選項是pg_restore和「重建數據庫到它保存時的狀態」,然後再次運行遷移。這是最好的方式嗎?可能有更好的方法,謝謝你的建議。

回答

1

您可以嘗試pg_dump --data-only,它將跳過表創建並只轉儲數據行。然後,當您恢復時,您的數據將進入現有表格。所以你需要確保它們已經存在於新的數據庫中。我不確定如果表格定義不同,會發生什麼情況。

或者,您也可以僅爲要保留的表執行pg_dump --table <table>