2 flat logo on transparent 256
2018-10-13

Rail5でアップデートしたらmysql2でエラーになった場合の対処方法

Error21312

Rails4系から5系にアップデートした後にマイグレーションを行ったら以下のエラーが発生しました。

マイグレーション時のエラー内容

以下エラー文はgem 'mysql2'のバージョンを下げる必要がある場合に発生するエラーとなります。

rails5 Gem::LoadError: Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile

原因

原因はgem fileでmysql2のバージョンを指定いていないか もしくはRailsに対応したmysql2のgemをインストールしている場合に発生するエラーとなります。

gemの公式から抜粋

Ruby on Rails / Active Record
mysql2 0.5.x works with Rails / Active Record 5.0.7, 5.1.6, and higher.

mysql2 0.4.x works with Rails / Active Record 4.2.5 - 5.0 and higher.

mysql2 0.3.x works with Rails / Active Record 3.1, 3.2, 4.x, 5.0.

mysql2 0.2.x works with Rails / Active Record 2.3 - 3.0.

対策

今回のRuby On Rails5.0.0を利用したので mysql2は 0.4系を指定しなければエラーになります。

gem 'mysql2', '~> 0.4.2'

以上で再度bundle update しマイグレーションを行うと解決しました。

その他関連記事

Ruby On Railsのデバッグツール byebugの紹介

本番環境でrocket-loader.jsが読み込まれずJavaScriptが機能しない

Nginxで特定のIPアドレスからの接続を拒否する

Ruby On RailsのアプリでGoogle Adsenseが表示されない場合の対処法

前の記事
次の記事