はじめに
Herokuでデータベースのバックアップを取るコマンド、PGBackupsを使ってみる。
使い方は公式サイトにそのままあるので、ご参考下さい。
https://devcenter.heroku.com/articles/heroku-postgres-backups
環境
Rails 5.2.4.2
Vagrant + Ubuntu 16.04.5 LTS
やってみた事
Herokuにログインします。
$heroku login --interactive
バックアップ対象のアプリ名を確認します。
$heroku apps
アプリ名を指定して、手動でバックアップを取ります。
$heroku pg:backups:capture --app アプリ名
ステータスを表示して、バックアップが取れている事を確認する。手動で取ったバックアップの場合、ダンプファイルにはbで始まるIDが付番され、スケジューラから作成されたバックアップには、aで始まるIDが付番されるようです。タイムスタンプは9時間の時差で表示されるので注意。
$heroku pg:backups --app アプリ名
ここで、Webアプリを立ち上げて、適当にデータを更新してみます。この後、リストアしてデータが元に戻っている事を確認します。
バックアップファイルをリストア(復元)します。b002を指定していますが、バックアップを取ったIDになります。プロンプトが出てくるので、アプリ名を入力する事になります。
$heroku pg:backups:restore b002 --app アプリ名
> アプリ名を入力する
Webからアプリを立ち上げて、先ほど、適当に更新したデータが元に戻っている事を確認します。
作成したバックアップダンプは削除しておきます。
$heroku pg:backups:delete b002 --app アプリ名
> アプリ名を入力する
再び、ステータスを表示して、IDがb002のバックアップダンプが削除されている事を確認します。
$heroku pg:backups --app アプリ名
Herokuからログアウトして終了。
$heroku logout