development
私は現在、ローカルとproduction
Herokuの 2 つの環境で作業しています。
staging
アプリをユーザーに公開する前に、Heroku に環境を追加して、すべてが期待どおりに進むことを確認したいと思います。できれば、staging
環境には環境とまったく同じ設定とデータがproduction
必要です。
上記を達成するために必要な手順は何ですか?
development
私は現在、ローカルとproduction
Herokuの 2 つの環境で作業しています。
staging
アプリをユーザーに公開する前に、Heroku に環境を追加して、すべてが期待どおりに進むことを確認したいと思います。できれば、staging
環境には環境とまったく同じ設定とデータがproduction
必要です。
上記を達成するために必要な手順は何ですか?
まず素因として、heroku git リモートをステージングとプロダクションとしてセットアップして、git push ステージング/プロダクションを簡単に使用してそれぞれにデプロイできるようにしたいと考えています。そのセットアップを使用して、ステージング環境の作成方法を説明します。
config/environments/staging.rb
「config/environments/production.rb」からコピーするファイルを作成しますheroku plugins:install git://github.com/ddollar/heroku-config.git
heroku config:pull --remote production
RACK_ENV=staging RAILS_ENV=staging
これにより、ステージング環境構成が使用されます。heroku fork -a production staging
(これらは、プロダクション/ステージングの代わりに必要な 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
、コンパイル済みのスラッグをステージングから本番環境に自動的に (そして非常に迅速に) プッシュすることを開始しました。(これは、設定または環境変数を介して環境固有の設定があることを前提としているため、コード スラッグは同じです。)
berislavbabic によって説明された手順は、Heroku のサイトの次のガイドに従って推奨されていないことに注意してください: https://devcenter.heroku.com/articles/multiple-environments#managing-staging-and-production-configurations
そこで詳細を読むことができますが、ステージング環境を本番環境と同じに保ち、heroku fork を使用して本番環境からステージング環境にコピーすることをお勧めします。