2

我有两个 heroku 环境,我想将生产数据库的最新备份复制到我的开发环境中。

使用 CLI,这很容易:

heroku pgbackups:restore DATABASE `heroku pgbackups:url --app Production` --app Development --confirm Development

但我想自动化这个。所以我把它做成了一个使用 heroku_api gem 的 rake 任务。这应该允许从 Heroku 调度程序调用它。

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

这不起作用。它所做的只是从最新的开发备份中刷新开发。

有什么想法可以自动化吗?

4

1 回答 1

0

使用“heroku”gem(不是“heroku-api”gem),您可以操作从一个应用程序到另一个应用程序的备份列表

当您安装 pgbackups 插件时,它会创建一个配置变量 PGBACKUPS_URL。您需要在您的开发应用程序中使用此值,如下所示:

# Get the latest backup
client = Heroku::Client::Pgbackups.new('https://bigmessything@pgbackups.heroku.com/client')
backup = client.get_latest_backup

backup['public_url] 应该包含您要使用上面的代码恢复的 URL

于 2012-11-29T13:34:57.907 回答