2012-10-26 37 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]應包含使用您有以上

代碼要恢復的網址