В моем gemfile я:
gem 'mysql2'
My 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 в комментариях к ссылке).
В то же время вы можете исправить, понизив до версии 0.3.18 mysql2, добавив эту строку в свой gemfile:
gem 'mysql2', '~> 0.3.18'