blog.kotamiyake.me

為せば成る、為さねば成らぬ何事も

毎回調べるのでメモ。

以下はRailsで開発している場合を想定しているが、ダンプするデータを適宜調整すれば特に問題ないはず。

まずはステージング環境の DATABASE_URLSTAGING_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 は生成されるのでダンプしない

参考記事