🆙

Rails v6.0.4.7 to v7.0.2.3

Railsをv6.0.4.7からv7.0.2.3へアップデートする仕事をしました。
バージョンを一気にあげたのでどの対応がどのバージョンの変更によるものなのかはちょっとわかっていないけど対応したものを書いておきます。

やったこと

activerecord-multi-tenantをmasterを参照するようにする

New release?
Updated Apr 11, 2022
Rails v7に対応した変更が入ったバージョンがまだリリースされていなかったのでmasterに向けた。

リダイレクトをしている箇所に を指定する

対象のサービスはマルチテナントアプリでテナントをサブドメインで判別しているアプリなので別のホスト(別のサブドメイン)へリダイレクトする処理が結構あった。
Rails v7に上げると別のホストへのリダイレクト処理は例外が発生するようになっていたので別ホストへリダイレクトしている箇所は全て を指定するようにすることで対応した。

のBreaking Changes対応

Railsのアップデートと同時にtzinfo gemもアップデートされたのでBreaking Changeがあり、timezoneの取得が変わった。
Before
After

のBreaking Changes対応

N+1を潰すために を使用している箇所があるがBreaking Changeがあったので以下のように書き換えた。
Before
After

のBreaking Changes対応

ActiveModelのエラーを扱うところを以下のように書き換えた。
Before
After

に書き換える

はdeprecatedになっており今回methodが削除されたので全て に書き換えた。
Before
After

のファイル指定を変えた

どこの変更が影響してかはわかっていないんだけど今までのファイル指定だとファイルが見つからないと怒られるようになったのでファイル指定を少し変えた。
ちなみに該当ファイルは というファイル名。
Before
After

のBreaking Change対応

指定の仕方が変わったので書き換えた。
Before
After

の実行

ActiveStorageのアップデートにはDBのmigrationが必要で、このコマンドを実行するとアップデートに必要なmigrationファイルを生成してくれる。

のBreaking Change対応

モジュールのネームスペースが変更になったので以下のように書き換えが必要だった。
Before
After

にエラーが発生するようになったので を使うようにする

実行時に以下のエラーが発生するようになった。
このエラー自体は以下の記事の通り へ追記することで修正可能。
だが今回はよりシンプルに を代わりに使うようにすることで修正した。
Before
After

以上!

そんなに大きなアプリでもないのでそんなに難しくなくバージョンを上げられてよかった。