Dalam permata saya, saya punya:
gem 'mysql2'
Database.yml saya adalah sebagai berikut:
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
Saya sudah menjalankan keduanya bundle update
dan bundle install
dan Gemfile.lock saya menunjukkan mysql2.
Namun ketika saya menjalankan rake db:migrate
saya mendapatkan ini di komputer saya dan di server staging:
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).
.....
Hanya untuk memastikan tidak ada versi mysql2 yang buruk atau sesuatu, saya melakukannya bundle clean --force
dan berlari bundle install
dan bundle update
lagi dan ketika saya menjalankan gem list
saya melihat mysql2 (0.4.0)
dan tidak ada versi lain.
Setiap ide akan sangat dihargai.
LARUTAN
Saat ini masalah dengan Rails 4.1.x dan 4.2.x, per laporan bug ini , akan diperbaiki pada rilis berikutnya dari rails 4.2.x (kredit untuk dcorr di komentar untuk tautan).
Sementara itu, Anda dapat memperbaikinya dengan melakukan penurunan ke versi 0.3.18 dari mysql2 dengan menambahkan baris ini ke gemfile Anda:
gem 'mysql2', '~> 0.3.18'
sumber
bundle update mysql2
mysql2 (0.4.0)
adalah permata ruby versi terbaru akan diambil dan sudah terpasang.gem 'mysql2', '~> 0.3.18'
di Gemfile.Jawaban:
Hanya pembaruan lebih lanjut - solusi dalam pertanyaan sudah benar.
Komentar ke-4 patut dicatat:
Saya dapat mengikat
Rails 4.2.4
ke4-2-stable
cabang dan membuatnya bekerja dengan yang terbarumysql2
:sumber
Kerjakan saja:
gem 'mysql2', '~> 0.3.18'
permata ini bekerja denganrails version 4.x.x
jika menginstal
gem 'mysql2', '~> 0.4.0'
itu menghasilkan kesalahan memuat permata dan menyebabkan masalah kompatibilitassumber
Masalah ini telah diatasi di sini: https://github.com/brianmario/mysql2/issues/950
Gemfile:
Lalu lari
bundle update rails mysql2
Saat ini saya menggunakan mysql v 8.0.11
sumber
Jawaban untuk pertanyaan khusus ini berkaitan dengan kapan diposting dan versi Rails yang digunakan adalah bahwa masalahnya disebabkan dari melakukan
bundle update
dan pembaruan versi mysql2 Anda ke 0.4.x yang memiliki masalah ketidakcocokan dengan ActiveRecord Rails terbaru.Sekali lagi, harap perhatikan ini BUKAN solusi untuk orang yang menggunakan Rails / ActiveRecord versi lama.
Solusi cepat adalah dengan cukup menentukan
mysql2
versi di gemfile Anda sebagai berikut:gem 'mysql2', '0.3.20'
Solusi panjangnya adalah menunggu pembaruan ke ActiveRecord atau sesuatu di mysql2 berubah.
sumber
Jika Anda dapat memutakhirkan versi rel Anda, maka ubah Gemfile Anda ke ini dan itu akan menyelesaikan masalah tanpa menurunkan versi permata mysql2:
sumber
Sebagai pemula yang lengkap saya bingung bagaimana melakukan ini, jadi saya hanya melakukan pemeriksaan percobaan dan akhirnya server saya berfungsi, berikut adalah bagaimana saya membuatnya bekerja.
masuk ke file direktori kerja ("kerja") dan dari sana masuk ke file aplikasi yang Anda buat ("sample_app") yang telah menginstal mysql 2 ke file gem ("Gemfile") sunting permata 'mysql2' menjadi permata 'mysql2', '~> 0.3.18'
sekarang kembali ke cmd dan jalankan perintah "bundle install".
jadi direktori untuk mengedit file dengan mempertimbangkan file-file di atas dalam tanda kurung harus. "c \ work \ sample_app \ Gemfile"
harap saya bisa membantu.
sumber
Ini biasanya terjadi ketika Anda kehilangan beberapa paket mysql pada mesin Anda. Apakah Anda mendapatkan kesalahan
gem install mysql2
? OS apa yang sedang Anda kerjakan?Jika pada debian atau ubuntu coba
sudo apt-get install libmysqlclient-dev
.Pastikan juga bahwa permata tidak ditempatkan di dalam
group
pernyataan di Gemfile Anda.sumber
Punya masalah yang sama tetapi menambah masalah
source 'https://rubygems.org'
gem file diselesaikan.Langkah:
tambahkan
source 'https://rubygems.org'
ke file gem Anda. Mengomentarimysql2 gem
dan menambahkangem 'mysql2', '~> 0.3.18'
Jalankanbundle install
sumber
coba ini:
perintah ini akan memperbarui permata 'mysql2' Anda ke versi terbaru (harus 0.3.17 atau lebih tinggi) dan mulai server rails Anda.
sumber