バッチ処理を動かしている Docker コンテナ含めてすべての環境を Ruby 3 で動かせるようになった。以下の点に難儀した。
- MeCab が Google Drive からダウンロードできなくなっているので代替を探した
- https://github.com/shogo82148/mecab のやつを参照することにした
- Tantiny が依存する rutie という Rust と Ruby をブリッジする gem が新しめの Rust に対応しておらず、 Rust のバージョンを 1.77 に固定する必要があった
- ActiveRecord が v6 に上がったことにより、
DATABASE_URL
を環境変数で渡すことで DB 接続設定を上書きできなくなってしまった- 設定ファイルの方を優先して読み込むようだった
ついでにキャッシュも効くように修正した。 sinatra-cache がおかしかったのは Haml の挙動が変わって - form_tag
としていたところを = form_tag
とする必要があるのと同様に、 - cache_fragment
を = cache_fragment
にする必要があった。再びキャッシュが効くようになって高速になったが、一部 HTML タグが混ざって表示されることがある。 sinatra-cache.gem が依存する sinatra-outputbuffe.gem の方に問題がありそう。この gem は 16 年以上更新されていない。どこかでキャッシュ依存はやめないといけないかもしれない。