rails sqlite适配器错误

我正在按照rails教程中的说明操作,并在尝试使用scaffold命令时遇到困难。

运行时:

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操作系统上运行。

有任何想法吗?

好的,我发现了问题。 我注意到我的Rails安装有SQLite 1.3.3和1.3.4我改变了我的Gemfile:

 gem 'sqlite3', '1.3.3' 

至:

 gem 'sqlite3', '1.3.4' 

这解决了这个问题。 谢谢@ holger-只是为了让我在他们的回答中指出错误信息中的相关行。

建议安装命令:

 gem install activerecord-jdbc-sqlite3-adapter 

实际安装命令:

 gem install activerecord-jdbcsqlite3-adapter 

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

您的错误消息的重要部分是此代码段:

 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 

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

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

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

代替

 gem install activerecord-sqlite3-adapter 

 gem install sqlite3 

另外在Rails Tutorial上,运行:

  $ rake db:migrate 

出现以下错误:

请安装sqlite3适配器:gem install activerecord-sqlite3-adapter(sqlite3不是bundle的一部分。将它添加到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?!再次好吧)。 安装成功,运行捆绑安装。

尝试跑步:

 $ rake db:migrate 

什么都没发生,所以试过:

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

根据上面的另一个建议。 它终于奏效了。 该教程警告说,一个艰苦的设置过程,但我觉得我必须混合和匹配至少5个其他人。 希望这有助于下一个人。