私の gemfile には次の内容が含まれています:
gem 'mysql2'
私の database.yml は次のとおりです。
default: &default
adapter: mysql2
database: <%= ENV['db_name'] %>
username: <%= ENV['db_user'] %>
password: <%= ENV['db_pass'] %>
host: <%= ENV['db_host'] %>
pool: 32
socket: <%= ENV['socket'] %>
development:
<<: *default
production:
<<: *default
両方を実行しましたbundle update
がbundle install
、Gemfile.lock には mysql2 が表示されます。
しかし、実行すると、rake db:migrate
自分のコンピューターとステージング サーバーの両方で次のメッセージが表示されます。
myproject.com(master)$ rake db:migrate
WARNING: Use strings for Figaro configuration. 10000012508 was converted to "10000012508".
WARNING: Use strings for Figaro configuration. 860526407370038 was converted to "860526407370038".
rake aborted!
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).
.....
mysql2 のバージョンが悪かったか何かがなかったかを確認するために、もう一度実行してbundle clean --force
みましたが、実行すると他のバージョンは表示されませんでした。bundle install
bundle update
gem list
mysql2 (0.4.0)
どのようなアイデアでも大歓迎です。
解決
これは現在、Rails 4.1.xと4.2.xで発生している問題です。バグレポートこれは、Rails 4.2.x の次のリリースで修正される予定です (リンクのコメントのクレジットは dcorr 氏によるものです)。
当面は、gemfile に次の行を追加して、mysql2 をバージョン 0.3.18 にダウングレードすることで修正できます。
gem 'mysql2', '~> 0.3.18'
ベストアンサー1
ただこうしてください:
gem 'mysql2', '~> 0.3.18'
この宝石はrails version 4.x.x
インストールするとgem 'mysql2', '~> 0.4.0'
gemロードエラーが発生し、互換性の問題が発生します。