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 update
et bundle install
et mes spectacles Gemfile.lock mysql2.
Cependant, lorsque je lance, rake db:migrate
j'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 --force
et j'ai couru bundle install
et bundle update
encore et quand je lance gem list
je 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