2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Railsバージョンアップ対応を初めて経験

2
Last updated at Posted at 2026-10-29

はじめに

Railsのバージョンアップを担当したので、気をつけたポイントと反省点をまとめました。

背景

これまでRails 7系を使っていましたが、セキュリティサポートが終了していました。昨今セキュリティ関連のニュースも増えていることから、Rails 8系へ移行することになり、その対応を私が担当しました。

ざっくり何をしたか

セキュリティ上のリスクを早く解消したかったため、作業を大きく2回に分けて進めました。ただ、途中でバージョンアップが必要なGemの漏れが見つかり(詳しくは「反省点」で触れます)、結果的に3日かかりました。

  1. 前準備
    1. load_defaults のバージョンを、現在のRailsのバージョンに合わせる
    2. Gemの整理とバージョンアップ
  2. Rails本体のバージョンアップ

気をつけたポイント

気をつけたポイントは次の4つです。

  1. 他部署と開発チームが協力し、ステージング環境で手動のE2Eテストを念入りに行う
  2. 他の変更と一緒にデプロイしない
  3. 切り戻し(Revert)しやすいように、デプロイ後は同じファイルを変更する別の修正をデプロイしない
  4. デプロイ後にログやサーバーのパフォーマンスを監視する
    1. Sentryでエラーが発生していないか
    2. Sidekiqでdeadジョブが出ていないか
    3. サーバーのレスポンスタイムが遅くなっていないか
    4. CPU使用率がスパイクしていないか

特に力を入れたのは1つ目です。普段からシステムを使っているカスタマーサポートチームに協力をお願いしました。事前に次の観点を整理して渡し、確認していただきました。

  • 特に確認してほしい機能
  • どの操作をしたときに、どの挙動になるのが正しいか
  • いつもと比べて変わっている点がないか

開発チームも同じ観点で動作を確認しつつ、ログもチェックしました。

反省点

業務委託で参画しているエンジニアの方から「Railsのアップグレードガイドを AI に渡すとよい」と助言をいただき、そこで初めて公式の「Railsアップグレードガイド」の存在を知りました。実際にガイドを AI に渡して確認させたところ、バージョンアップが必要なGemに漏れがあることに気付けました。

大きな問題にはなりませんでしたが、この漏れの対応で作業が1日延びました。本来は、AIに作業計画を立てさせる前に、こうした公式ドキュメントがないかを調べさせるべきでした。

最後に

普段は意識せずに使っていたGemが何をしているのかを知る機会になり、バージョンアップで何に気をつけるべきかも学べました。貴重な経験だったと感じています。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?