Benim gemfile var:
gem 'mysql2'
Benim database.yml aşağıdaki gibidir:
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
İkisini de çalıştırdım bundle update
ve bundle install
Gemfile.lock'um mysql2'yi gösteriyor.
Ancak çalıştırdığımda rake db:migrate
bunu hem bilgisayarımda hem de hazırlama sunucusunda alıyorum:
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).
.....
Sadece mysql2 ya da başka bir şey kötü bir sürümü olmadığından emin olmak için, yaptım bundle clean --force
ve koştu bundle install
ve bundle update
tekrar çalıştırdığımda gem list
görüyorum mysql2 (0.4.0)
ve başka sürümleri yok.
Herhangi bir fikir en çok takdir edilecektir.
ÇÖZÜM
Şu anda Rails 4.1.x ve 4.2.x ile ilgili bir sorun, bu hata raporu başına , 4.2.x raylarının bir sonraki sürümünde düzeltilecektir (bağlantı için yorumlarda dcorr'a kredi).
Bu arada gemfile'ınıza bu satırı ekleyerek mysql2'nin 0.3.18 sürümüne geçerek düzeltebilirsiniz:
gem 'mysql2', '~> 0.3.18'
mysql2 (0.4.0)
yakut taşların alacağı en yeni sürüm ve zaten yüklü.
gem 'mysql2', '~> 0.3.18'
şuydu : Gemfile'da.
bundle update mysql2