2015-11-24 31 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>