Rails 4-Gem :: LoadError : 데이터베이스 어댑터에 대해 'mysql2'를 지정했지만 gem이로드되지 않았습니다
내 gemfile에는 다음이 있습니다.
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
및 RAN bundle install
과 bundle update
다시 내가 실행할 때 gem list
내가 볼 mysql2 (0.4.0)
과 다른 버전.
어떤 아이디어라도 가장 감사하겠습니다.
해결책
현재이 버그 보고서에 따라 Rails 4.1.x 및 4.2.x의 문제입니다 . 다음 릴리스의 Rails 4.2.x (링크에 대한 주석에서 dcorr에 대한 크레딧)에서 수정 될 것입니다.
그 동안 gemfile에 다음 줄을 추가하여 mysql2 버전 0.3.18로 다운 그레이드하여 수정할 수 있습니다.
gem 'mysql2', '~> 0.3.18'
추가 업데이트 만하면 문제의 해결책이 정확합니다.
네 번째 의견은 다음 사항에 유의하십시오.
이 그것이 액티브 어댑터의 요구 사항에 문제가있어, mysql2와 버그가 아닙니다 http://github.com/rails/rails/issues/21544 . 레일 마스터에서 수정되었습니다 : https://github.com/rails/rails/commit/5da5e3772c32593ecf2f27b8865e81dcbe3af692
나는 묶을 수 있었다 Rails 4.2.4
받는 4-2-stable
지점 및 최신 작업을 얻을 mysql2
:
gem 'rails', '~> 4.2.4', git: "git://github.com/rails/rails.git", branch: '4-2-stable'
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw] #-> Rails 4.1+
#DB
gem 'mysql2'
그냥 해:
gem 'mysql2', '~> 0.3.18'
이 보석은 작동합니다 rails version 4.x.x
설치하면 gem 'mysql2', '~> 0.4.0'
하면 gem로드 오류가 발생하고 호환성 문제가 발생합니다
게시 된 bundle update
날짜 및 사용중인 Rails 버전과 관련된이 특정 질문에 대한 대답은 문제가 발생하고 mysql2 버전이 0.4.x로 업데이트되어 최신 Rails ActiveRecord와 호환되지 않는 문제가 있다는 것입니다.
다시 말하지만, 이는 이전 버전의 Rails / ActiveRecord를 사용하는 사람들에게는 솔루션이 아닙니다.
빠른 해결책은 mysql2
다음과 같이 gemfile에 버전을 지정하는 것입니다.
gem 'mysql2', '0.3.20'
긴 해결책은 ActiveRecord에 대한 업데이트 또는 mysql2의 내용이 변경 될 때까지 기다리는 것입니다.
이 문제는 여기에서 해결되었습니다 : https://github.com/brianmario/mysql2/issues/950
Rails 4.x의 경우 gem을 mysql2 '~> 0.4.0'에 고정하여 0.5.x 업그레이드를 피하십시오.
젬 파일 :
gem 'rails', '4.2.8'
gem 'mysql2', '~> 0.4.0'
그런 다음 실행 bundle update rails mysql2
현재 mysql v 8.0.11을 사용하고 있습니다.
레일스 버전을 업그레이드 할 수 있다면 Gemfile을 다음과 같이 변경하면 mysql2 gem 버전을 다운 그레이드하지 않고도 문제가 해결됩니다.
gem 'rails', '4.2.6'
As a complete beginner i got confused on how to do this so I just did a trial check and finally got my server working , here is how i got it working .
get into the file of working directory("work") and from there get into the file of the app you created("sample_app")which has mysql 2 installed go to gem file ("Gemfile")edit gem 'mysql2' to gem 'mysql2', '~> 0.3.18'
now go back to cmd and run command "bundle install".
so the directory to edit file taking consideration of above files in brackets should be . "c\work\sample_app\Gemfile"
hope i was of some help .
This usually happens when you are missing some mysql packages on your machine. Do you get any errors from gem install mysql2
? What OS are you working on?
If on debian or ubuntu try sudo apt-get install libmysqlclient-dev
.
또한 gem이 group
Gemfile 의 명령문 안에 있지 않아야합니다.
같은 문제가 있었지만 추가 source 'https://rubygems.org'
to the top of gem file solved issue.
단계 :
source 'https://rubygems.org'
gem 파일에 추가 하십시오. 주석 처리 mysql2 gem
및 추가 gem 'mysql2', '~> 0.3.18'
실행bundle install
이 시도:
bundle update mysql2
이 명령은 'mysql2'gem을 최신 버전 (0.3.17 이상)으로 업데이트하고 Rails 서버를 시작합니다.
'Programing' 카테고리의 다른 글
Subversion 저장소를 Git 하위 모듈로 사용할 수 있습니까? (0) | 2020.06.10 |
---|---|
실제로 존재하는 파일을 제거 할 수 없음-치명적 : pathspec… 파일과 일치하지 않습니다 (0) | 2020.06.10 |
언제 Flask.g을 사용해야합니까? (0) | 2020.06.10 |
공개 친구 교환 회원 기능 (0) | 2020.06.10 |
해당 행이나 열에 0이 포함되어 있으면 행렬의 모든 셀을 0으로 설정하십시오. (0) | 2020.06.09 |