mysql2 버전(0.3.2)은 이제 Rails 3.1의 일부이므로 ActiveRecord 어댑터가 번들로 제공되지 않습니다.
안녕하세요 저는 레일을 실행할 때 레일 버전 3.0.7을 사용하고 있습니다. 모델 작업 이름: 문자열이 경고를 따릅니다.
WARNING: This version of mysql2 (0.3.2) doesn't ship with the ActiveRecord adapter bundled anymore as it's now part of Rails 3.1
WARNING: Please use the 0.2.x releases if you plan on using it in Rails <= 3.0.x
/usr/lib/ruby/gems/1.8/gems/activerecord-3.0.7/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `establish_connection': Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter) (RuntimeError)
from /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.7/lib/active_record/connection_adapters/abstract/connection_specification.rb:60:in `establish_connection'
from /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.7/lib/active_record/connection_adapters/abstract/connection_specification.rb:55:in `establish_connection'
from /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.7/lib/active_record/railtie.rb:59
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/lazy_load_hooks.rb:43:in `run_load_hooks'
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/lazy_load_hooks.rb:42:in `each'
from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/lazy_load_hooks.rb:42:in `run_load_hooks'
from /usr/lib/ruby/gems/1.8/gems/activerecord-3.0.7/lib/active_record/base.rb:1904
from /home/sun/railsapp/dog/vendor/plugins/attribute_fu/init.rb:1
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/plugin.rb:81
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:25:in `instance_exec'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:25:in `run'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:50:in `run_initializers'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:49:in `each'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/initializable.rb:49:in `run_initializers'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:134:in `initialize!'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:77:in `send'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing'
from /home/sun/railsapp/dog/config/environment.rb:5
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:103:in `require'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/application.rb:103:in `require_environment!'
from /usr/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/commands.rb:16
from script/rails:6:in `require'
from script/rails:6
active record- adapter2- mysql를 설치하려고 하면 다음 기준으로 active record- adapter2- adapter 오류: 어떤 저장소에서도 'active record- mysql2- mysql'(> = 0)의 유효한 보석을 찾을 수 없습니다.
제발 도와주세요 감사합니다.
문제는 레일 3.0.x 버전과 호환되지 않는 최신 버전의 mysql2를 설치하려고 하기 때문입니다.
따라서 젬 파일에서 mysql2 gem의 행을 다음과 같이 변경합니다.
gem 'mysql2', '< 0.3'
그리고나서bundle
지휘권을
그리고 새로운 mysql2 gem 파일(제 생각에는 0.2.7)이 나오면 문제를 해결할 것입니다.
여전히 작동하지 않는 경우 이 작업도 수행합니다.
sudo install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /Users/YOUR_USER_NAME/.rvm/gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle
gem 'mysql2', '< 0.3'은 Rails 3.0.7(3.1 이전)의 유일한 방법입니다.
업데이트: 죄송합니다. 이 또한 해당되지 않았습니다. 역시 작동하지 않았습니다. 더 나은 방법이 있습니다.
벤더/bundle/ruby/gems/1.9.1/mysql/rb2-0.3.2/lib/active_record/connection_adapters$[rails307]$lsem_mysql2_adapter.adaptermqsql2_adapter.
mysql2 gem version 0.2.x에서 mysql2_adapter.rb 파일을 가져와서 위 위치에 복사합니다.
이제 젬파일에 있는 'mysql2'라는 gem만으로도 저에게 효과가 있습니다.
@evevans에서 제공하는 솔루션을 사용해 본 후에도 버전에 문제가 있었습니다.그리고 @rubyconvict의 제안을 읽으며, 파일을 이리저리 밀기보다는 gem에 -v 옵션을 사용하는 것을 생각했습니다.
드림호스트의 무서운 "version of mysql2(0.3.2)" 메시지에 대한 고민이 결국 해결된 것은 다음과 같습니다.
# in mysql, create example_app & example_app_test ...
# ... for the purposes of this example only, production == development db
rails new example_app --database=mysql --freeze
cd example_app
vim config/database.yml
# change settings for host, user, password ...
# ... database for test (example_app_test) ...
# ... & database for production & development (example_app)
vim Gemfile
# gem 'mysql2', '< 0.3'
gem uninstall mysql2 # if installed: gem list -d mysql2
gem install mysql2 -v 0.2.7
rake db:migrate
거기서 루트(vim config/routes.rb...) 수정과 같은 다른 RoR 재미로 이동할 수 있습니다. 주행거리가 달라질 수 있습니다.
경고: Rails <= 3.0.x>에서 0.2.x 릴리스를 사용할 경우 사용하십시오.
간단히 말해서 mysql2 gem에 0.2.x 분기의 최신 버전을 사용하면 됩니다.
언급URL : https://stackoverflow.com/questions/5840742/version-of-mysql2-0-3-2-doesnt-ship-with-the-activerecord-adapter-bundled-any
'programing' 카테고리의 다른 글
크기 8 - Valgrind + C의 잘못된 판독값 (0) | 2023.10.23 |
---|---|
zLib을 사용하여 감압 및 팽창 (0) | 2023.10.23 |
SQL 0(음의 값인 경우) (0) | 2023.10.18 |
angularjs: ng-message가 항상 표시됨 (0) | 2023.10.18 |
UIView 하위 클래스의 Nib을 로드하는 올바른 방법 (0) | 2023.10.18 |