2012-10-26 36 views
2

我有两个heroku环境,我想将生产数据库的最新备份复制到我的开发环境。自动化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

使用“Heroku的”宝石(不是“的Heroku的API”宝石),你可以从一个应用程序操纵的备份列表到另一个

当您安装pgbackups插件,它创建一个配置变量PGBACKUPS_URL。你需要在你开发的应用程序来使用这个值,像这样:

# Get the latest backup 
client = Heroku::Client::Pgbackups.new('https://[email protected]/client') 
backup = client.get_latest_backup 

备份['public_url]应包含使用您有以上

代码要恢复的网址