すでに本番環境が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
ってやればできるよ( ˘ω˘)"