毎回調べるのでメモ。
以下はRailsで開発している場合を想定しているが、ダンプするデータを適宜調整すれば特に問題ないはず。
まずはステージング環境の DATABASE_URL
を STAGING_DATABASE_URL
としてReview Appsの環境変数に設定する。
そしてpostdeploy scriptを使ってリストアするよう設定する。
"scripts": {
"postdeploy": "pg_dump -a -T ar_internal_metadata -T schema_migrations $STAGING_DATABASE_URL | psql $DATABASE_URL"
}
ポイント
- Herokuのヘルプページを参考にすると丸ごとリストアするのでマイグレーションが合った際に挙動が不安定になるため、データだけダンプしてリストする(実行順序がrelease phase → postdeployの順番のため
ar_internal_metadata
をリストアしようとするとkey
の重複でエラーが発生するのでダンプしない- release phaseでマイグレーションが実行されるようにしていて
schema_migrations
は生成されるのでダンプしない