Rails における Staging 環境の追加方法
売り切りで開発したシステムに改修依頼が来た
昔、作るだけ作ったシステムがあったんですが、特に改修とかの話もなく、1年以上経った今になって改修を依頼されました。
ありがたい限りです。
で、改修するんですけど、そもそも改修が来る想定がなかったのでproduction 環境とdevelopment 環境、それに test 環境という Rails そのままで作っていました。
なので、改修する前に staging 環境を用意して、結合テスト・システムテストを行うための環境とするようにしました。
Staging 環境を追加するために必要な対応
Gemfile の修正
development 環境でも使っている、以下の gem を導入するために設定を変更しました。
group :development, :staging do gem 'bullet' gem 'meta_request' gem 'rack-dev-mark' gem 'rack-mini-profiler' end
config/environments/staging.rb の追加
config/environments/production.rb
をコピーして、config/environments/staging.rb
を作ります。
ログレベルの修正、Bullet 及び rack_dev_markの設定追加を行いました。
# ログレベル設定 config.log_level = :debug # Bullet 設定 config.after_initialize do Bullet.enable = true Bullet.alert = true Bullet.bullet_logger = true Bullet.console = true Bullet.rails_logger = true end # rack_dev_mark 設定 config.rack_dev_mark.enable = true config.rack_dev_mark.theme = [Rack::DevMark::Theme::GithubForkRibbon.new(position: 'right', fixed: true, color: 'orange')]
config/secrets.yml の修正
ここは環境変数から取得することにして、以下のように追記します。
staging: secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
config/database.yml の修正
ここは今回インフラとして heroku を利用するため、特に追加はいらないです。
環境によってはデータベース設定を追記する必要があります。
staging: # heroku 上にリリースするため、設定なし
あとは普通に heroku 上に staging 環境を用意し、デプロイすれば staging 環境構築完了です!
思っていたより時間がかかった
あまりよく実施することでもないため、思いのほか調査と過去の記憶を呼び起こすのに時間がかかってしまいました。
こういうのをブログにまとめておくと、あとで読み返して利用できるので、自分のためにもこまめに更新しなきゃいけないですね。