programing

mysql2 버전(0.3.2)은 이제 Rails 3.1의 일부이므로 ActiveRecord 어댑터가 번들로 제공되지 않습니다.

goodsources 2023. 10. 23. 21:45
반응형

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

반응형