ActiveRecord Oracle enhanced adapter 7.0.1 がリリースされた

ActiveRecord Oracle enhanced adapter 7.0.1 がリリースされた。yahonda さんありがとうございます。

rubygems.org

Rails 7.0 系統に対応している ActiveRecord Oracle enhanced adapter のパッチバージョンとなる。

MySQL に対応する Mysql2Adaptermysql2 gemPostgreSQL に対応する PostgreSQLAdapterpg gem といったように、各アダプターはそれぞれのドライバーを介して、データベース接続している。Oracle enhanced adapter の場合は、MRI では ruby-oci8 gem に依存し、JRuby では JDBC の Jar に依存するつくりになっている。このあたりの話は 2018 年に沖縄 Ruby 会議02 で話したので、興味があればどうぞ。

speakerdeck.com

そういうわけで、MRIOracle enhanced adapter を使う場合は ruby-oci8 のインストールが別途必要だったのが Oracle enhanced adapter 7.0.0 までで、今回リリースされた 7.0.1 からは ruby-oci8 が Oracle enhanced adapter のランタイム依存 gem として gemspec 記載されたので、別途のインストールが不要になった。特段の理由がなければ、このバージョン以降は Gemfile への gem 'ruby-oci8' 指定が不要になる。

一方、JRubyOracle enhanced adapter を使う場合は、むしろ ruby-oci8 に依存をしないようにする必要があるため、今後 MRIJRuby 向け個々にパッケージがリリースされることになる。

なお、JRuby は現行の最新安定版である 9.3 が Ruby 2.6 互換で、開発版となる 9.4 は Ruby 3.0 互換となるらしい (Ruby 2.7 互換はスキップされるとのこと) 。

github.com

そのため、Ruby 2.7 以上を要求する Rails 7.0 に対応した JRuby の安定版はまだ存在しておらず、今後 JRuby 9.4 が正式リリースされたのちに、Oracle enhanced adapter は JRuby 向けのパッケージリリースがされる予定。