Nel mio gemfile ho:
gem 'mysql2'
Il mio database.yml è il seguente:
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
Ho eseguito entrambi bundle update
e bundle install
e il mio Gemfile.lock mostra mysql2.
Tuttavia quando corro rake db:migrate
ottengo questo sia sul mio computer che sul server di gestione temporanea:
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).
.....
Solo per essere sicuro che non esistesse una versione errata di mysql2 o qualcosa del genere, l'ho fatto bundle clean --force
e funzionato bundle install
e bundle update
ancora e quando corro gem list
vedo mysql2 (0.4.0)
e nessun'altra versione.
Qualsiasi idea sarebbe apprezzata.
SOLUZIONE
Attualmente è un problema con Rails 4.1.xe 4.2.x, per questo bug report , sarà risolto nella prossima versione di rails 4.2.x (credito a dcorr nei commenti per il link).
Nel frattempo, puoi risolvere il problema eseguendo il downgrade alla versione 0.3.18 di mysql2 aggiungendo questa riga al tuo gemfile:
gem 'mysql2', '~> 0.3.18'
mysql2 (0.4.0)
è la versione più recente che prenderanno le gemme di rubino ed è già installata.
gem 'mysql2', '~> 0.3.18'
in Gemfile.
bundle update mysql2