Git
Heroku

Heroku で既存の本番環境をコピーしてステージング環境を作る

More than 3 years have passed since last update.

すでに本番環境がHerokuにあって、ステージング環境もHerokuに作りたい場合

既にある Heroku の本番環境を fork してコピーする

Forking Existing Apps | Heroku Dev Center

heroku fork -a APPNAME APPNAME-stg
  • これだけでいろんなアドオンや DB の中身もコピーされて、ステージング環境が出来上がる。アラ簡単。(http://APPNAME-stg.herokuapp.com でもう確認できる状態になってる)
  • Collaborator 権限はコピーされないので、新たに追加し直す必要がある
  • hook もコピーされないので、新たに追加する必要がある

お手元のローカル環境に git remote add する

ちょっと余談なのだが、このとき、herokuとかheroku-stgとかではなく、そのアプリケーションの名前でgit add しておくと、デプロイがプロジェクトによって違うコマンドになるので、例えば慌ててウッカリ違うプロジェクトのディレクトリで git push heroku master って打ってしまって、違うプロジェクトをデプロイしちゃった…という悲しい事故を防止できる。

cd APPNAME
git remote add APPNAME-stg git@heroku.com:APPNAME-stg.git

これで、デプロイするときは

git push APPNAME-stg master

てな感じになる

ステージングだけではなく、本番のリモートリポジトリもアプリケーションの名前に変えておくとよい。
既に、「heroku」とかになってるリモートリポジトリをリネームするには、

git remote rename heroku APPNAME

て、やるといい。
これでデプロイする時は、

git push APPNAME master

てな感じになり、この世から悲しみが減る。

Basic認証つけたければ

heroku config:set BASIC_AUTH_USERNAME="id" BASIC_AUTH_PASSWORD="password" --app APPNAME-stg

ってやればできるよ( ˘ω˘)"