2

2 つの 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

これは動作しません。最新の開発バックアップから開発を更新するだけです。

これを自動化する方法はありますか?

4

1 に答える 1

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] には、上記のコードを使用して復元する URL を含める必要があります

于 2012-11-29T13:34:57.907 に答える