Dans mon gemfile j'ai:
gem 'mysql2'
Ma database.yml est la suivante:
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
J'ai couru à la fois bundle updateet bundle installet mes spectacles Gemfile.lock mysql2.
Cependant, lorsque je lance, rake db:migratej'obtiens ceci à la fois sur mon ordinateur et sur le serveur intermédiaire:
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).
.....
Juste pour m'assurer qu'il n'y avait pas une mauvaise version de mysql2 ou quelque chose du genre, je l'ai fait bundle clean --forceet j'ai couru bundle installet bundle updateencore et quand je lance gem listje vois mysql2 (0.4.0)et aucune autre version.
Toutes les idées seraient très appréciées.
SOLUTION
C'est actuellement un problème avec Rails 4.1.x et 4.2.x, d'après ce rapport de bogue , il sera corrigé dans la prochaine version de rails 4.2.x (crédit à dcorr dans les commentaires pour le lien).
En attendant, vous pouvez corriger en faisant une mise à niveau vers la version 0.3.18 de mysql2 en ajoutant cette ligne à votre gemfile:
gem 'mysql2', '~> 0.3.18'
mysql2 (0.4.0)dernière version que Ruby Gems prendra et elle est déjà installée.
gem 'mysql2', '~> 0.3.18'dans Gemfile.

bundle update mysql2