У своєму гемфілі я маю:
gem 'mysql2'
Мій 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, згідно з цим звітом про помилку вона буде виправлена у наступному випуску рейки 4.2.x (заслуговуйте на dcorr у коментарях за посиланням).
Тим часом ви можете це виправити, перейшовши на версію 0.3.18 mysql2, додавши цей рядок до вашого gemfile:
gem 'mysql2', '~> 0.3.18'
mysql2 (0.4.0)
це найновіша версія рубінових дорогоцінних каменів, і вона вже встановлена.
gem 'mysql2', '~> 0.3.18'
у Gemfile.
bundle update mysql2