🆙
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
以上!
そんなに大きなアプリでもないのでそんなに難しくなくバージョンを上げられてよかった。