【问题标题】:rails sqlite adapter errorrails sqlite适配器错误
【发布时间】:2011-11-14 08:50:34
【问题描述】:

我按照rails tutorial 中的说明进行操作,但在尝试使用脚手架命令时卡住了。

运行时:

rails generate scaffold User name:string email:string  

我得到错误:

C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `rescue in establish_connection': Please install the sqlite3 adapter: `gem install activerecord-sqlite3-adapter` (can't activate sqlite3 (~> 1.3.4), already activated sqlite3-1.3.3-x86-mingw32. Make sure all dependencies are added to Gemfile.) (RuntimeError)

跑步:

gem install activerecord-sqlite3-adapter

我得到了错误:

ERROR:  Could not find a valid gem 'activerecord-sqlite3-adapter' (>= 0) in any repository
ERROR:  Possible alternatives: activerecord-jdbcsqlite3-adapter, activerecord-sqlserver-adapter, activerecord-nulldb-adapter, activerecord-spatialite-adapter, activerecord-simpledb-adapter

我的 Gemfile 看起来像这样:

source 'http://rubygems.org'
gem 'rails', '3.1.0'  
gem 'sqlite3', '1.3.3'  
...

我在 Windows 7 x64 操作系统上运行。

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby sqlite


    【解决方案1】:

    好的,我发现了问题。我注意到我的 Rails 安装同时具有 SQLite 1.3.3 和 1.3.4 我将 Gemfile 更改为:

    gem 'sqlite3', '1.3.3'
    

    到:

    gem 'sqlite3', '1.3.4'
    

    这解决了问题。感谢@holger-just 将我指向their answer 错误消息中的相关行。

    【讨论】:

    • 我完全像这样添加了我的:gem 'sqlite3'。这为我解决了同样的问题:-)
    【解决方案2】:

    建议的安装命令:

    gem install activerecord-jdbc-sqlite3-adapter
    

    实际安装命令:

    gem install activerecord-jdbcsqlite3-adapter
    

    参考: http://kenai.com/jira/browse/ACTIVERECORD_JDBC-19

    【讨论】:

      【解决方案3】:

      错误消息的重要部分是这个 sn-p:

      can't activate sqlite3 (~> 1.3.4), already activated sqlite3-1.3.3-x86-mingw32. Make sure all dependencies are added to Gemfile.
      

      要解决这个问题,您应该始终像这样通过bundle exec 运行命令

      bundle exec rails generate scaffold User name:string email:string 
      

      这样,您就可以让 bundler 完全控制您的 $LOAD_PATH,这可能会解决这些问题。

      【讨论】:

      • 感谢@Holager exec 没有解决问题,但您将我指向错误消息中的相关行。这帮助我解决了问题。
      【解决方案4】:

      我也有这个错误,购买我的问题略有不同。 问题是 sqlite3-ruby 已被弃用,将被 sqlite3 取代。在 michael hartl 的网络广播中,他仍然使用旧的 sqlite3-ruby。

      我编辑了我的 gemfile 以使用 sqlite 1.3.4 而不是 sqlite3-ruby 1.3.1。 重新运行捆绑安装,瞧,问题解决了!

      【讨论】:

        【解决方案5】:

        代替

        gem install activerecord-sqlite3-adapter
        

        运行

        gem install sqlite3
        

        【讨论】:

          【解决方案6】:

          也在 Rails 教程上,运行:

            $ rake db:migrate
          

          得到以下错误:

          请安装 sqlite3 适配器:gem install activerecord-sqlite3-adapter(sqlite3 不是捆绑包的一部分。添加 它到 Gemfile。)。

          跑:

          $ gem install activerecord-sqlite3-adapter

          得到:

          错误:找不到有效的 gem 'activerecord-sqlite3-adapter' (>= 0) 在任何存储库中

          根据上述答案之一更改了 Gemfile:

          gem 'sqlite3', '1.3.4'

          遇到另一个错误,所以必须安装:

          $ gem install sqlite3 -v '1.3.4'
          

          尝试再次运行 $ rake db:migrate,但又出现了另一个错误,这次类似于上面的答案:

          请安装 sqlite3 适配器:gem install activerecord-sqlite3-adapter(无法激活 sqlite3 (~> 1.3.5), 已经激活 sqlite3-1.3.4。确保添加了所有依赖项 到 Gemfile。)

          因此将 Gemfile 更改为:

          gem 'sqlite3', '1.3.5'

          并收到另一条错误消息,以确保 'gem install sqlite3 -v '1.3.5' 成功(wtf?!又好了)。安装成功,运行 bundle install。

          试运行:

          $ rake db:migrate
          

          什么都没发生,所以尝试了:

          $ bundle exec rails generate scaffold User name:string email:string
          

          根据上面的另一个建议。它终于奏效了。该教程警告说设置过程很费力,但我觉得我必须与至少 5 个其他人混合搭配。希望这可以帮助下一个人。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-04-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-11-29
            • 2013-02-26
            • 2012-04-04
            相关资源
            最近更新 更多