我有一个充满数据的暂存应用程序,我想用它来填充我当前空的生产数据库。目前我正在尝试使用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会改变源数据库?或者我的语法错误了?
提前致谢。
答案 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
添加到上面命令的末尾。