現在、私が作業している環境は2つあります。ローカルのdevelopment
とHerokuのproduction
です。
Herokuにstaging
環境を追加して、アプリをユーザーに公開する前に、すべてが期待どおりに行われることを確認したいと思います。できれば、staging
環境はproduction
環境とまったく同じ設定とデータを持っている必要があります。
上記を達成するために必要な手順は何ですか?
まず、素因として、heroku gitリモートをステージングと本番環境としてセットアップして、gitPushステージング/本番環境を簡単に使用してそれぞれにデプロイできるようにするのが好きです。その設定を使用して、ステージング環境を作成する方法を説明します。
config/environments/staging.rb
を作成します。これを `config/environment /production.rb 'からコピーします。heroku plugins:install git://github.com/ddollar/heroku-config.git
でheroku-configプラグインをインストールしますheroku config:pull --remote production
を使用してheroku(本番サーバー)から環境設定をプルしますRACK_ENV=staging Rails_ENV=staging
ステージング環境構成を使用するように、.heroku fork -a production staging
を使用してHeroku環境をフォークします(これらは、本番/ステージングの代わりに必要なHerokuアプリ名です)このチュートリアルも読むことができます。herokuで複数の環境を使い始めるために使用したと思います: https://devcenter.heroku.com/articles/multiple-environments#managing-staging-and-production-configurations
heroku fork -a PRODUCTION_APP_NAME NEW_STAGE_APP_NAME
は、より速く、より簡単な方法であることがわかりました...新しいアプリを作成し、すべて(postgresデータベースを含む)をコピーします。次に、必要に応じてアドオンを手動で小さなプランにダウングレードしました(たとえば、スターター層データベース)。
実際、私たちは比較的新しいheroku pipeline:promote
を使用して、コンパイルされたスラッグをステージングから本番環境に自動的に(そして非常に迅速に)プッシュして管理し始めました。 (これは、設定または環境変数を介して環境固有の設定があることを前提としているため、コードスラグは同じです。)
Herokuのサイトにある次のガイドでは、berislavbabicによって説明されている手順は推奨されないことに注意してください。 https://devcenter.heroku.com/articles/multiple-environments#managing-staging-and-production-configurations ==
詳細はここで読むことができますが、ステージング環境を本番環境と同じに保ち、herokuフォークを使用して本番環境からステージングにコピーすることをお勧めします。