【问题标题】:Could not load 'active_record/connection_adapters/sqlite3_adapter'. in win7 64bit无法加载“active_record/connection_adapter/sqlite3_adapter”。在win7 64位
【发布时间】:2014-11-17 06:07:32
【问题描述】:

Ruby 版本:ruby 2.1.3p242 (2014-09-19 修订 47630) [x64-mingw32]

Rails 版本:Rails 4.1.6

Windows:win7 64位

sqlite3-1.3.9-x64-mingw32.gemspec 已更改为 s.require_paths= ["lib/sqlite3_native"]

Ruby/Bin中的sqlite3.dll,Gemfile的sqlite3版本和Gemfile.lock的一样,rails服务器没问题,但是访问网站返回这个错误:

Could not load 'active_record/connection_adapters/sqlite3_adapter'. Make sure that the adapter in config/database.yml is valid. If you use an adapter other than 'mysql', 'mysql2', 'postgresql' or 'sqlite3' add the necessary adapter gem to the Gemfile.

信息:

activesupport (4.1.6) lib/active_support/dependencies.rb:247:in require'
activesupport (4.1.6) lib/active_support/dependencies.rb:247:inblock in require'
activesupport (4.1.6) lib/active_support/dependencies.rb:232:in load_dependency'
activesupport (4.1.6) lib/active_support/dependencies.rb:247:inrequire'
activerecord (4.1.6) lib/active_record/connection_adapters/sqlite3_adapter.rbin <top (required)>'
activesupport (4.1.6) lib/active_support/dependencies.rb:247:inrequire'
activesupport (4.1.6) lib/active_support/dependencies.rb:247:in block in require'
activesupport (4.1.6) lib/active_support/dependencies.rb:232:inload_dependency'
activesupport (4.1.6) lib/active_support/dependencies.rb:247:in require'
activerecord (4.1.6) lib/active_record/connection_adapters/connection_specification.rb:188:inspec'
activerecord (4.1.6) lib/active_record/connection_handling.rb:50:in establish_connection'
activerecord (4.1.6) lib/active_record/railtie.rb:129:inblock (2 levels) in class:Railtie'
activesupport (4.1.6) lib/active_support/lazy_load_hooks.rb:38:in instance_eval'
activesupport (4.1.6) lib/active_support/lazy_load_hooks.rb:38:inexecute_hook'
activesupport (4.1.6) lib/active_support/lazy_load_hooks.rb:45:in block in run_load_hooks'
activesupport (4.1.6) lib/active_support/lazy_load_hooks.rb:44:ineach'
activesupport (4.1.6) lib/active_support/lazy_load_hooks.rb:44:in run_load_hooks'
activerecord (4.1.6) lib/active_record/base.rb:326:inmodule:ActiveRecord'
activerecord (4.1.6) lib/active_record/base.rb:23:in <top (required)>'
activerecord (4.1.6) lib/active_record/connection_adapters/abstract/connection_pool.rb:628:inrescue in call'
activerecord (4.1.6) lib/active_record/connection_adapters/abstract/connection_pool.rb:619:in call'
activerecord (4.1.6) lib/active_record/migration.rb:380:incall'
actionpack (4.1.6) lib/action_dispatch/middleware/callbacks.rb:29:in block in call'
activesupport (4.1.6) lib/active_support/callbacks.rb:82:inrun_callbacks'
actionpack (4.1.6) lib/action_dispatch/middleware/callbacks.rb:27:in call'
actionpack (4.1.6) lib/action_dispatch/middleware/reloader.rb:73:incall'
actionpack (4.1.6) lib/action_dispatch/middleware/remote_ip.rb:76:in call'
actionpack (4.1.6) lib/action_dispatch/middleware/debug_exceptions.rb:17:incall'
actionpack (4.1.6) lib/action_dispatch/middleware/show_exceptions.rb:30:in call'
railties (4.1.6) lib/rails/rack/logger.rb:38:incall_app'
railties (4.1.6) lib/rails/rack/logger.rb:20:in block in call'
activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:inblock in tagged'
activesupport (4.1.6) lib/active_support/tagged_logging.rb:26:in tagged'
activesupport (4.1.6) lib/active_support/tagged_logging.rb:68:intagged'
railties (4.1.6) lib/rails/rack/logger.rb:20:in call'
actionpack (4.1.6) lib/action_dispatch/middleware/request_id.rb:21:incall'
rack (1.5.2) lib/rack/methodoverride.rb:21:in call'
rack (1.5.2) lib/rack/runtime.rb:17:incall'
activesupport (4.1.6) lib/active_support/cache/strategy/local_cache_middleware.rb:26:in call'
rack (1.5.2) lib/rack/lock.rb:17:incall'
actionpack (4.1.6) lib/action_dispatch/middleware/static.rb:64:in call'
rack (1.5.2) lib/rack/sendfile.rb:112:incall'
railties (4.1.6) lib/rails/engine.rb:514:in call'
railties (4.1.6) lib/rails/application.rb:144:incall'
rack (1.5.2) lib/rack/lock.rb:17:in call'
rack (1.5.2) lib/rack/content_length.rb:14:incall'
rack (1.5.2) lib/rack/handler/webrick.rb:60:in service'
E:/Tool/Ruby21-x64/lib/ruby/2.1.0/webrick/httpserver.rb:138:inservice'
E:/Tool/Ruby21-x64/lib/ruby/2.1.0/webrick/httpserver.rb:94:in run'
E:/Tool/Ruby21-x64/lib/ruby/2.1.0/webrick/server.rb:295:inblock in start_thread'

【问题讨论】:

  • 我的 gem 列表只有这个:sqlite3 (1.3.9 x64-mingw32)
  • 你的 database.yml(尤其是适配器)怎么样?
  • 也是{ gem 'sqlite3', '1.3.9' },但是我发现在sqlite3_adapter.rb中有一行像{gem 'sqlite3', '~> 1.3.6'},是这个原因吗?
  • 不,可能只是表示 >1.3.6 版本...我的 sqlite3 都是 1.3.9...

标签: ruby-on-rails ruby


【解决方案1】:

我的解决方案 (Win7 x64) 是卸载所有不必要的 sqlite3 版本。我安装了 1.3.9、1.3.10 和 1.3.11,所以我删除了 .9 和 .10 并更新了我的 gemfile 以使用 .11。

gem uninstall sqlite3
bundle install

在 1.3.11 中,我不需要应用您提到的 s.require_paths=["lib/sqlite3_native"] hack。

【讨论】:

    【解决方案2】:

    我遇到了同样的错误,安装了相同版本的 sqlite3 gem,并且也更改了特定的 gemspec 路径。看了一会后,我做了一个简单的

    gem install sqlite3
    

    在命令行上并修复了错误。

    【讨论】:

      【解决方案3】:

      转到您应用的 gemfile 并将 sqlite3 gem 版本编辑为您已安装的版本。

      gem 'sqlite3', '1.3.9'
      

      【讨论】:

        猜你喜欢
        • 2013-08-19
        • 2016-12-14
        • 2020-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-23
        • 1970-01-01
        • 2011-06-10
        相关资源
        最近更新 更多