W moim pliku gemfile mam:
gem 'mysql2'
Moja baza danych.yml wygląda następująco:
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
Zabrakło mi zarówno bundle update
a bundle install
i moje pokazy Gemfile.lock mysql2.
Jednak po uruchomieniu rake db:migrate
otrzymuję ten komunikat zarówno na moim komputerze, jak i na serwerze przejściowym:
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).
.....
Aby upewnić się, że nie ma złej wersji mysql2 lub czegoś podobnego, zrobiłem bundle clean --force
i biegałem bundle install
i bundle update
znowu, a kiedy uruchamiam gem list
, widzę mysql2 (0.4.0)
i nie ma innych wersji.
Wszelkie pomysły będą mile widziane.
ROZWIĄZANIE
Obecnie jest to problem z Railsami 4.1.xi 4.2.x, zgodnie z tym zgłoszeniem błędu , zostanie on naprawiony w następnej wersji rails 4.2.x (autorstwo dcorr w komentarzach do linku).
W międzyczasie możesz to naprawić, przechodząc do wersji 0.3.18 mysql2, dodając ten wiersz do pliku gemfile:
gem 'mysql2', '~> 0.3.18'
mysql2 (0.4.0)
to najnowsza wersja Ruby Gems bierze i jest już zainstalowana.
gem 'mysql2', '~> 0.3.18'
w Gemfile.
bundle update mysql2