herokuでデータベースのバックアップ(pgbackups)を自動化する
heroku から「bundlesは、4/4に終わるからpgbackups使えや〜」とメールが来たので、pgbackupsの自動化を調べてみた。
herokuのデータベースのバックアップをcronで自動化するには、下記の gem を使えばOK。
GitHub - ddollar/heroku_backup_task: This project has a new maintainer
pgbackups addon は、無料版だとバックアップを2つ保持できます。
この gem は既に2つのバックアップがある場合は、古いバックアップを破棄して新しいバックアップを作成します。
(heroku pgbackups:capture --expire と同じ動作)
install方法に書いてあるとおり、
Gemfile に追加
gem "heroku_backup_task"
cron.rake
require "heroku_backup_task" desc 'execute hourly task' task :cron do # other code here HerokuBackupTask.execute end
heroku にpush して実行した結果は、下記のような感じ。
$ heroku pgbackups ID | Backup Time | Size | Database -----+---------------------+------------+------------- b004 | 2011/01/26 08:18.53 | 942.0bytes | DATABASE_URL b005 | 2011/01/26 08:37.08 | 942.0bytes | DATABASE_URL $ heroku rake cron (in /disk1/home/slugs/1ba16e10-bb38-41a1-a6e2-7cb3f205636b/mnt) [Wed Jan 26 08:44:51 -0800 2011] starting heroku backup task [Wed Jan 26 08:44:51 -0800 2011] backing up: DATABASE_URL $ heroku pgbackups ID | Backup Time | Size | Database -----+---------------------+------------+------------- b005 | 2011/01/26 08:37.08 | 942.0bytes | DATABASE_URL b006 | 2011/01/26 08:44.51 | 942.0bytes | DATABASE_URL
作者の、 ddollar さんはherokuの便利そうなgem結構つくっているなぁ。