No meu gemfile eu tenho:
gem 'mysql2'
Meu database.yml é o seguinte:
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á corri tanto bundle update
e bundle install
e meus shows Gemfile.lock mysql2.
No entanto, quando executo rake db:migrate
, obtenho isso no meu computador e no servidor de teste:
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).
.....
Apenas para ter certeza de que não havia uma versão ruim do mysql2 ou algo assim, bundle clean --force
executei bundle install
e executei várias bundle update
vezes e quando executo gem list
, vejo mysql2 (0.4.0)
outras versões.
Qualquer idéia seria muito apreciada.
SOLUÇÃO
Atualmente, é um problema com o Rails 4.1.xe 4.2.x, de acordo com este relatório de bug , será corrigido na próxima versão do rails 4.2.x (crédito para dcorr nos comentários do link).
Enquanto isso, você pode corrigir fazendo o downgrade para a versão 0.3.18 do mysql2 adicionando esta linha ao seu gemfile:
gem 'mysql2', '~> 0.3.18'
mysql2 (0.4.0)
é a versão mais recente que o ruby gems terá e já está instalado.
gem 'mysql2', '~> 0.3.18'
no Gemfile.
bundle update mysql2