2016-08-06 21 views
1

rails 5でモデルを作成しようとしていて、mysql-community-serverをインストールしました。また、私はmysqlとmysql2の両方のgemをインストールしました。しかし、私はrails generate model Bookエラーの下になって、rails 5 mysql adapter issue

[[email protected] library]# rails generate model Book 
/root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:293:in `require': Could not load 'active_record/connection_adapters/mysql_adapter'. Make sure that the adapter in config/database.yml is valid. If you use an adapter other than 'mysql2', 'postgresql' or 'sqlite3' add the necessary adapter gem to the Gemfile. (LoadError) 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:293:in `block in require' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:259:in `load_dependency' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:293:in `require' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0/lib/active_record/connection_adapters/connection_specification.rb:174:in `spec' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0/lib/active_record/connection_handling.rb:53:in `establish_connection' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0/lib/active_record/railtie.rb:125:in `block (2 levels) in <class:Railtie>' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.0.0/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.0.0/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.0.0/lib/active_support/lazy_load_hooks.rb:45:in `block in run_load_hooks' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.0.0/lib/active_support/lazy_load_hooks.rb:44:in `each' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activesupport-5.0.0/lib/active_support/lazy_load_hooks.rb:44:in `run_load_hooks' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0/lib/active_record/base.rb:324:in `<module:ActiveRecord>' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-5.0.0/lib/active_record/base.rb:24:in `<top (required)>' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/spring-1.7.2/lib/spring/application.rb:338:in `active_record_configured?' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/spring-1.7.2/lib/spring/application.rb:259:in `disconnect_database' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/spring-1.7.2/lib/spring/application.rb:97:in `preload' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/spring-1.7.2/lib/spring/application.rb:143:in `serve' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/spring-1.7.2/lib/spring/application.rb:131:in `block in run' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/spring-1.7.2/lib/spring/application.rb:125:in `loop' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/spring-1.7.2/lib/spring/application.rb:125:in `run' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/spring-1.7.2/lib/spring/application/boot.rb:19:in `<top (required)>' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
     from /root/.rbenv/versions/2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
     from -e:1:in `<main>' 
[[email protected] library]# 

database.yaml実行すると:

[[email protected] library]# cat config/database.yml 
development: 
    adapter: mysql2 
    database: library_development 
    username: root 
    password: [password] 
    host: localhost 

test: 
    adapter: mysql2 
    database: library_test 
    username: root 
    password: [password] 
    host: localhost 

production: 
    adapter: mysql2 
    database: library_production 
    username: root 
    password: [password] 
    host: localhost 

[[email protected] library]# 

バージョンの詳細:

[[email protected] library]# rails -v 
Rails 5.0.0 
[[email protected] library]# gem list | grep mysql 
activerecord-mysql-adapter (0.0.1) 
mysql (2.9.1) 
mysql2 (0.4.4) 
[[email protected] library]# 

がさえ、私は任意のコマンドをrails new library -d mysql

をするアプリケーションを作成しますアイデアなぜMySQLのアダプタ接続で失敗した。

答えて

3

bundlerをインストールしましたか?私はmysql2 gemがrubyの現在のバージョンではなく、rubyの異なるバージョンにインストールされていると推測しています。まずbundlerをインストールしてみてください。

gem install bundler 
bundle install 
rails db:migrate 
rails g model book 

また、あなたは、あなたがそれを削除してdatabase.ymlファイルにアダプタとしてmysql2を使用することができ、mysql宝石を必要としません。

+2

ご協力いただきありがとうございます! 'mysql'宝石の取り外しができました。 – Karthi1234

0

が見つかりませんbundle installを実行して、サーバーを再起動しgem 'mysql2'を追加してください場合gem 'mysql2'

を見つけ、あなたの宝石のファイルに

あなたの宝石のファイルを確認してください。

+0

それぞれのDBタイプのgemファイルエントリがGemfileに存在し、同じことが確認されました。また、私はpostgresql、sqlite3も同様の問題で終わったところで試しました。 – Karthi1234