FC2ブログ

記事一覧

Heroku で "can't activate mysql2" とエラーが出るのを解決できた話

いきなり web 開発ネタ。

車格.com は今でも月に 2 度ほど、バイクのラインアップ更新を行っています。
アップデート作業は定型化しているんですが、ホストしている Heroku の方で環境の自動更新があったりすると、作業に詰まることもちらほら。

今回は mysql2 絡みでちょっとハマったので、解決策を記録しておきます。
まずは現象の説明から。

本番環境である Heroku で DB の更新を行う際に自作の rake コマンドを走らせたところ、エラー発生。
メッセージにはこんな説明が含まれています。

Gem::LoadError: Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).

Caused by:
Gem::LoadError: can't activate mysql2 (~> 0.3.13), already activated mysql2-0.4.10. Make sure all dependencies are added to Gemfile.

新しいバージョンの gem が有効化されてしまっているから、古いバージョンを有効化できない?
ちなみに gemfile 上はバージョン指定をしていなかった状態。

結局、解決策は定番の stack overflow にありました。


開発環境 (cloud9) の gemfile で

gem 'mysql2', '0.3.20'

とバージョンを指定してあげてから、bundle update mysql2 を実行。
その後 Heroku に git push したら、rake コマンドも無事に走りました。

最近はこのメンテ作業のためにしか cloud9 や Heroku に触れていないので、ちょっとテクニカルにつまずくと結構うろたえますね。
スポンサーサイト

コメント

コメントの投稿

非公開コメント

プロフィール

かたて

Author:かたて
いろんなものにすぐハマる。そしてすぐ飽きる。
こうした消費スタイルを通じてささやかに日本経済に貢献中。
ちなみに写真はこんなですが、サッカーはやってません。

作った web サービス

月別アーカイブ