上京エンジニアの葛藤

都会に染まる日々

ruby v2.6.x に上げたら mysql2 も5.x に上げないといけない

最近ようやくruby 2.6.3 に上げました。
一先ず RSpec を走らせてみるとこんな感じでコケたので、まとめておきます。

vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/connection_adapters/mysql/database_statements.rb:34: warning: BigDecimal.new is deprecated; use BigDecimal() method instead.

内容的には BigDecimal.new は非推奨だから BigDecimal() 使えよってことです。
ruby v2.6 から BigDecimal.new は非推奨になっています。

github.com

そして、一見 Active Record でまだ使われてるのが原因か?って思いがちですが、いいえ、違います。

原因は mysql2 にあって修正 PR はこちらです。
github.com

v0.5.0 でリリースされているので、mysql2 を update すれば warn は出なくなります。
自分は v0.4.x を使っていたので今回のようなことが起こっていました。

定期的に gem update をやれってことですね。。