在Heroku,我试图使用pgbackups插件将生产数据库复制到我的临时应用程序。我按照插件页面上的说明:
https://devcenter.heroku.com/articles/pgbackups
首先我捕获了DB:
heroku pgbackups:capture --app production-app
这工作:
HEROKU_POSTGREsql_PURPLE (DATABASE_URL) ----backup---> b238 Capturing... done Storing... done
但是,当我尝试在临时应用程序恢复它:
heroku pgbackups:restore DATABASE `heroku pgbackups:url --app production-app` --remote staging
我得到以下错误消息:
DATABASE_URL does not match any of your databases ! Could not resolve database DATABASE ! ! Available databases:
我也试过输入完整的网址:
heroku pgbackups:url b238 --app production-app heroku pgbackups:restore DATABASE "https://s3.amazonaws.com/..." --remote staging
并尝试命名应用程序(而不是–remote staging):
heroku pgbackups:restore DATABASE `heroku pgbackups:url --app production-app` --app staging-app
没有一个工作。有趣的是,错误消息表明没有“可用数据库”。我假设它是指的分段应用程序是确实为空。如果我键入:
heroku pgbackups
我得到:
! No backups. Capture one with `heroku pgbackups:capture`.
要找到可用的备份(生产),我需要键入:
heroku pgbackups --app production-app
我得到当前备份的列表。我不知道这是否正常,即使它是与问题有关,但我认为我应该提一下。
我已阅读并尝试每一个答案在这里,但没有工作。有任何想法吗?
2015年中更新…
原文链接:https://www.f2er.com/postgresql/193358.htmlpgbackups附加组件已被弃用。没有更多pgbackups:转移。
要将数据库从yourapp(数据库名称:HEROKU_POSTGREsql_PINK_URL)复制到yourapp_staging(数据库名称:HEROKU_POSTGREsql_WHITE_URL)
# turn off the web dynos in staging heroku maintenance:on -a yourapp-staging # if you have non-web-dynos,do them too heroku ps:scale worker=0 -a yourapp-staging # backup the staging database if you are paranoid like me (optional) heroku pg:backups capture -a yourapp-staging # execute the copy heroku pg:copy yourapp::HEROKU_POSTGREsql_PINK_URL HEROKU_POSTGREsql_WHITE_URL -a yourapp-staging
然后当它完成后,重新开始分期:
# this is if you have workers,change '1' to whatever heroku ps:scale worker=1 -a yourapp-staging heroku maintenance:off -a yourapp-staging
提醒:您可以使用heroku pg:info -a yourapp-staging(和yourapp)来获取数据库名称 – 查看第一行,在===之后。