2

ある DB から別の DB への毎日のバックアップの自動転送を実装する必要があります。DB とアプリの両方が heroku でホストされています。次のコマンドを使用してローカル マシンから手動で実行する場合、これが可能であることはわかっています。

heroku pgbackups:restore DATABASE `heroku pgbackups:url --app production-app` --app staging-app

ただし、このプロセスは自動化し、ローカル マシンからではなく実行する必要があります。このコマンドを実行するレーキを作成するアイデアがあります。Heroku Scheduler アドオンを使用して、このレーキを毎日実行します。

これを行う方が良い方法はありますか?それとも、このタスクのためのより良い方法がありますか?

前もって感謝します。

4

1 に答える 1

1

私は自分で問題を解決することができました。それほど複雑ではないように見えました。これが解決策です。おそらく他の誰かに役立つでしょう: 1.特定のサーバーから現在のサーバーのDBに最新のダンプをコピーするスクリプトを作成しました

namespace :backup do
  desc "copy the latest dump from a certain server to the DB of the current server"
  task restore_last_write_dump: :environment do
    last_dump_url = %x(heroku pgbackups:url --app [source_app_name])
    system("heroku pgbackups:restore [DB_to_target_app] '#{last_dump_url}' -a [target_app_name] --confirm [target_app_name]")
    puts "Restored dump: #{last_dump_url}"
  end

end
  1. サーバーへのリクエストごとに認証を回避するには、アプリのルートにファイル .netrc を作成します (詳細はこちらhttps://devcenter.heroku.com/articles/authentication#usage-examplesを参照) 。

  2. heroku のスケジューラ アドオンをセットアップし、実行頻度とともに rake タスクを追加します。

それだけです。

于 2014-09-15T13:13:34.493 に答える