在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: 我也尝试过输入完整的URL:
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-05-28 08:47:04
2017年中的更新(抄袭Mouri的答案-简化DATABSE_NAME部分)
2015年中更新...
pgbackups附加组件已弃用。不再有pgbackups:transfer了。
将数据库从您的copy复制到yourapp_staging
# 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 your-app::DATABASE_URL DATABASE_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发布于 2016-10-11 11:46:16
更新:您可以运行以下命令将数据库从生产环境转移到登台环境:heroku pg:copy your-app::DATABASE_URL DATABASE_URL -a yourapp-staging
它将提示您确认该操作,一旦确认完成,所有数据都将被迁移。
发布于 2014-06-03 08:43:28
更新:这不再有效。请参考下面的@lucas-nelson的answer。
所以现在事情变得更简单了。签出传输命令作为pgbackup的一部分
heroku pgbackups:transfer HEROKU_POSTGRESQL_PINK sushi-staging::HEROKU_POSTGRESQL_OLIVE -a sushi这对我来说效果很好,把生产代码带回了我的临时站点。
https://stackoverflow.com/questions/10673630
复制相似问题