皆さんお疲れ様です。
久しぶりの更新になります。
なんと約2年ぶり・・・
2年も経つと、Railsの新しいバージョンがリリースされています。
なので、今回はRailsをバージョンアップしました。
その際、修正が必要だった点や気になった点を記録します。
久しぶりの更新になります。
なんと約2年ぶり・・・
2年も経つと、Railsの新しいバージョンがリリースされています。
なので、今回はRailsをバージョンアップしました。
その際、修正が必要だった点や気になった点を記録します。
前提
Ruby on Rails 7.0.8 → 8.0.2
バージョンを上げる方法も提供されているかと思いますが、今回は、Rails8のアプリを新規作成して、ファイルを移植する方法を取りました。
1.Turbo Drive の記述変更
Turbo Drive の書き方が変わっているようでした。
【旧】
<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
【新】
<%= stylesheet_link_tag :app, "data-turbo-track": "reload" %>
違いはちょっとだけですが、生成されるCSS読み込み部が、下記の通り全く異なります。
【旧記述のままで生成されるCSS読み込み処理】
<link rel="stylesheet" href="/assets/application-8b441ae0.css" data-turbo-track="reload">
【新記述で生成されるCSS読み込み処理】
<link rel="stylesheet" href="/assets/actiontext-xxxxxxxx.css" data-turbo-track="reload"> <link rel="stylesheet" href="/assets/application-xxxxxxxx.css" data-turbo-track="reload"> <link rel="stylesheet" href="/assets/article-xxxxxxxx.css" data-turbo-track="reload"> <link rel="stylesheet" href="/assets/layout-xxxxxxxx.css" data-turbo-track="reload"> <link rel="stylesheet" href="/assets/style-xxxxxxxx.css" data-turbo-track="reload">
旧記述のままだと、application.css以外を読み込んでくれません。
application.cssにすべてのCSSを記述しているのでない限り、表示が崩れるでしょう。
2.ヘルスチェック機能
デフォルトで、ヘルスチェック機能が提供されるようになったらしい。
routes.rbに、以下のような記述が追加されていることで気が付きました。
get "up" => "rails/health#show", as: :rails_health_check
ヘルスチェック機能とは、サーバーの生存確認用インターフェースです。
監視システムやロードバランサーが、サーバーの稼働状況を確認するために使用します。
正常動作している場合は、レスポンスのステータスコード 200 を返し、それ以外は 500 を返します。
ヘルスチェック用のインターフェースを自分で作る必要が無いのはちょっとだけ便利ですね。
なお、ヘルスチェック用のページは真緑のなにもないページとなります。
3.production環境のDB
Production環境のDBを作成した際に、以下のようなDBスキーマが作成された。
appl_production appl_production_cable appl_production_cache appl_production_queue
これは、Solid Trifecta という機能のためのテーブルです。
Solid Trifectahは、超ざっくり言えば、高速化のための技術です。
Solid cache、Solid cable、Solid queue の3つの機能からなっています。
それぞれ、Active Support のキャッシュ、Action Cable のアダプタ、Active Job 用のバックグラウンドワーカーとのこと。
以前から同様機能はサードパーティなどで存在していたようですが、Rails 8 からは標準で提供されるようになったようです。
まとめ
今回は、Railsを移植でバージョンアップしました。
結果的には、修正が必要だったのは、Turbo Drive の記述だけでとなりました。
使っている機能によっては、他にも修正は必要かもしれませんが、今回は割と簡単に移植できました。
皆さんの参考になればと思います。
ではまた。