- # Show full error reports and disable caching.
+ # Show full error reports.
config.consider_all_requests_local = true
- config.action_controller.perform_caching = false
config.cache_store = :null_store
- # Disable caching for Action Mailer templates even if Action Controller
- # caching is enabled.
- config.action_mailer.perform_caching = false
# Raise exceptions for disallowed deprecations.config.active_support.disallowed_deprecation=:raise# Tell Active Support which deprecation messages to disallow.config.active_support.disallowed_deprecation_warnings=[]
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるaction_controller.perform_cachingとaction_mailer.perform_caching
config.action_controller.perform_caching
とconfig.action_mailer.perform_caching
は、両方ともキャッシュ機能を有効にするかどうかの設定です。rails new
で生成されるconfig/environments/test.rbにおいて、 8.0からは以下のようにこれらの設定を無効にするコードが削除されました(この変更のPRとこの変更のCommit)。公式として8.0からはテスト環境ではキャッシュが効いた状態を標準とするということだと思いますので、既存アプリでも同じ設定変更、つまり、設定の削除をしても良いかもしれません。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるassets.quiet
config.assets.quiet
は、アセット関連リクエストのログ出力を無効にするかどうかの設定です。後述のように、Rails 8.0.0でtrueにする以下の設定が削除されましたが、復活させるPRが出ていますので、既存アプリで削除するかには慎重な判断が必要かもしれません。rails new
で生成されるconfig/environments/development.rbにおいて、 8.0.0と8.0.1ではこの設定が削除されています(この変更のPR)。 しかし、この設定を削除するとターミナル出力がとっちらかるので設定を復活させるというPRがマージ済みですので、今後のバージョンでは設定が復活します。rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるquery_log_tags_enabled
config.active_record.query_log_tags_enabled
は、SQLクエリのログに実行時情報のコメントを付加する機能を有効にするかどうかの設定です。rails new
で生成されるconfig/environments/development.rbにおいて、 8.0からは以下のようにこの設定が有効になるコードになりました(この変更のPR)。 ちなみに、default値は7.2から変わらずfalseですので、 development.rb内の当該設定を意図的に変更しなければ、既存アプリの挙動が勝手に変わることはありません。確かにdevelopment環境において便利そうな機能ですので、8.0へのアップデートを機に、有効にしても良いかもしれません。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるpublic_file_server.headersの設定の変更
rails new
で生成されるconfig/environments/test.rbと同development.rbにおいて、 このプルリクエストのマージによって、config.public_file_server.headers
のキーが以下のように小文字になりました。変更された理由はRack 3への対応のためですので、既存アプリでも設定を変更するのが良さそうです。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0におけるdeprecation関連の設定の削除
rails new
で生成されるconfig/environments/test.rbと同development.rbにおいて、 7.2以前は以下の設定用コードが存在していましたが、 このプルリクエストのマージによって削除されました。削除された理由は、当該プルリクエストによると、アプリが新規生成された直後は非推奨の問題と無縁であるということからのようです。 ですので、非推奨の問題が出てくる可能性のある既存アプリにおいては適切な設定をしたままにしておくのが良さそうです。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0ではfilter_parametersに:cvvと:cvcが追加された
rails new
で生成されるconfig/initializers/filter_parameter_logging.rbにおいて、 Rails 8.0でconfig.filter_parametersに:cvv
と:cvc
が追加されました。 この追加に関するプルリクエストはこちらです。セキュリティの観点からは、確かにクレジットカードのCVCとCVVをフィルタすることは適切であるように思いますので、既存アプリにおいても:cvvと:cvcを追加すると良さそうです。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
Rails 8.0への移行におけるActive Storageのmigration
bin/rails app:update
コマンドを実行すると以下の3つのファイルがdb/migrate/
に作成されることがありますが、Active Storageをまだ使用したことがないアプリケーションでは、 これら3つのファイルは単純に削除してしまっても良いはずです。
詳しくは、「Rails 7.1への移行におけるActive Storageのmigration」のコメントをご覧ください。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
不要であればアイコン画像の削除
bin/rails app:update
コマンドを実行すると以下の2つのアイコン画像ファイルがpublic/
に作成されますが、これら2つのファイルは、
rails new
で生成される新規railsアプリ用のファイルであるため、既存アプリでは単純に削除してしまい、 従来通りのアイコン画像とアイコン設定(faviconやapple-touch-icon)を用いれば大丈夫です。 (もちろん、既存アプリにおいてアイコン設定が適切に行われている場合の話です。)より詳細な情報はrails 7.2への移行におけるアイコン画像のコメントをご覧ください。
rails 7.2からrails 8.0への移行(アップデート、アップグレード)で必要な作業
基本的にはRailsガイドの手順に従えば良いと思います。
ガイドの手順にもありますが、ぜひ
bin/rails app:update
コマンドを活用しましょう。rails 8.0への移行で対応が必要そうな個別の作業について、以下のコメントでそれぞれ取り上げますので、ご参考になれば幸いです。
既存のRailsアプリへのBrakemanの導入
bundle binstubs brakeman
を用いるやり方に更新しました。