Heroku在远程数据库之间传输数据,清晰的语法示例

时间:2014-07-02 15:27:25

标签: ruby-on-rails postgresql heroku

我有一个充满数据的暂存应用程序,我想用它来填充我当前空的生产数据库。目前我正在尝试使用pg:transfer。使用的语法是什么?

地址:

Staging app: afternoon-oasis-XXXX

Production app: warm-springs-XXXX, or postgres://long-database-url.compute-1.amazonaws.com:XXX/XXXXXXXX

文档说明:

#documentation
$ heroku pg:transfer --to `heroku config:get DATABASE_URL -a app-staging` --confirm someapp

我试过

$ heroku pg:transfer -t postgres://long-database-url.compute-1.amazonaws.com:XXX/XXXXXXXX -f JADE

这应该是来自JADE,但是确认消息似乎表明JADE,我的下午 - 绿洲应用程序,我的预期来源,将会被改变:

 WARNING: Destructive Action
 !    This command will affect the app: afternoon-oasis-XXXX
 !    To proceed, type "afternoon-oasis-XXXX" or re-run this command with --confirm afternoon-oasis-XXXX

为什么Heroku会改变源数据库?或者我的语法错误了?

提前致谢。

1 个答案:

答案 0 :(得分:1)

第二次更新

您需要pgbackups addon,但它是免费的。对不起忘了。

这个插件会每隔一段时间备份你的postgres数据库,如果你需要恢复数据,那就太好了。

要添加它,只需运行heroku addons:add pgbackups:auto-week -a warm-springs-XXXX

还将pgbackup添加到暂存应用

heroku addons:add pgbackups:auto-week -a afternoon-oasis-XXXX

然后运行

heroku pgbackups:capture -a afternoon-oasis-XXXX备份最新的

最后你可以运行

heroku pgbackups:restore DATABASE_URL `heroku pgbackups:url -a afternoon-oasis-XXXX` -a warm-springs-XXXX

此命令首先获取您的暂存应用程序数据库备份的URL,然后将其提取到您的生产中。

<强>原始

不要使用pg:transfer尝试做这样的事情:

heroku pgbackups:restore DATABASE_URL 'INPUT YOUR STAGING DATABASE URL' -a warm-springs-XXXX

如果您有任何疑问,请与我们联系。然后,您只需在提示时键入确认消息,或将--confirm warm-springs-XXXX添加到上面命令的末尾。