我有两个heroku环境,我想将生产数据库的最新备份复制到我的开发环境。
使用CLI,这很简单:
heroku pgbackups:restore DATABASE `heroku pgbackups:url --app Production` --app Development --confirm Development
但我想自动化这个。所以我做了一个使用heroku_api gem的rake任务。这应该允许从Heroku Scheduler调用它。
task :auto_refresh do
@heroku = Heroku::API.new(...)
@heroku.post_ps('Development', 'heroku pgbackups:restore DATABASE `heroku pgbackups:url --app Production` --app Development --confirm Development')
end
这不起作用。它所做的只是从最新的开发备份中刷新开发。
我可以自动解决这个问题吗?
答案 0 :(得分:0)
使用'heroku'gem(不是'heroku-api'gem),您可以操作从一个应用程序到另一个应用程序的备份列表
安装pgbackups插件时,会创建一个配置变量PGBACKUPS_URL。您需要在Dev应用程序中使用此值,如下所示:
# Get the latest backup
client = Heroku::Client::Pgbackups.new('https://bigmessything@pgbackups.heroku.com/client')
backup = client.get_latest_backup
backup ['public_url]应包含您要使用上面的代码恢复的网址