A Little Each Day

note to self

capistranoでデプロイした時にmysql2が認識されない問題を解決する

こんにちは。本日はcapistranoでデプロイ時に遭遇したエラーについてです。

RailsアプリのデータベースにMySQLを使用しようと思いましたが、GemfileからMySQLアダプターが読み込めないというエラーが発生したので、今回はその解決策を共有したいと思います。

エラー内容

デプロイにcapistranoを使いサーバーにデプロイしようとした時に以下のようなエラーメッセージが表示されました。

deploy:assets:precompile
  01 RBENV_ROOT=$HOME/.rbenv RBENV_VERSION=2.2.2 $HOME/.rbenv/bin/rbenv exec bundle exec rake assets:precompile
  01 rake aborted!
  01 Gem::LoadError: Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile ・・・.


上記のメッセージは簡単にいえば「 'mysql2' のGemが認識できないから、Gemfileに追加して」というメッセージです。

gem 'mysql2'


もちろんGemfileにはmysql2を追加しているのにもかかわらず、上記のようなエラーメッセージがでました。


解決策

'mysql2' を単にGemfileに書くだけでなく、そのバージョンも指定してあげたら解決しました。

gem 'mysql2', '~> 0.3.20'


これでもう一度デプロイしたら問題なく 'mysql2' が読み込まれ、今度はエラーなくデプロイできました。



本日は以上です。