【问题标题】:Cannot use sqlite3 with ruby 1.9.2 and rails 3.0.0 on windows无法在 Windows 上将 sqlite3 与 ruby​​ 1.9.2 和 rails 3.0.0 一起使用
【发布时间】:2010-09-25 12:33:29
【问题描述】:

我必须先解释一下我的背景,然后是问题:

  1. 我已经使用 Ruby on Rails 3 年了,用于不同的应用程序,并从 1.2 升级到 2.3.9。我想尽快升级到 3.0.0。
  2. 我所读到的所有信息都告诉我要使用当前版本的 Ruby 1.9.2 来处理 Rails 3.0.0,所以我在 Windows 上安装了预编译的二进制 1.9.2。
  3. 我记得 sqlite3 需要将 DLL 安装在路径中的某个位置,所以我将其复制到新的 bin 目录中。
  4. 我还安装了必要的 sqlite3-ruby。
  5. 我创建了一个新应用程序,生成了一个虚拟表迁移,并尝试执行“rake db:migrate”
  6. 答案是:rake aborted! no driver for sqlite3 found

我四处搜索,找到了一些答案,告诉你自己安装 sqlite3 的二进制文件(这对我来说是遥不可及的)。

那么问题来了:

在 Windows 上的 Ruby 1.9.2 上使用 Rails 3.0.0 的正确设置是什么?

顺便说一句,当只安装 sqlite3-ruby 时,我得到了一个似乎可以工作的新版本(1.3.1)。但是当我想在 rails 中使用它时,rails 坚持要安装 1.2.5 版本(这显然不适合我)。

【问题讨论】:

  • 您好,您复制的是什么版本的sqlite3.dll?如果您安装了 sqlite3-ruby,那么它应该指出您需要哪个版本的 DLL。此外,Rails 3 需要捆绑包中的宝石。您是否阅读过 Bundler 文档?
  • 嗨 Luis,感谢您的提问。我复制的版本是正确的,但是我安装了旧版本的 sqlite3-ruby,并且它不适用于我安装的 DLL。顺便说一句,“阅读 Bundler 文档”是什么意思? Rails 3 的文档很多,所以你不知道从哪里开始

标签: ruby-on-rails sqlite3-ruby


【解决方案1】:

好吧,我知道这是不好的风格,但我找到了一种解决方案。我不知道为什么它一开始就不起作用...

我的解决方案是:

  1. 安装最新版本的sqlite3-ruby(当前版本为1.3.1)

  2. 该安装为您(作为 DOS shell 中的文本)提供了将正确的 sqlite3.dll 复制到何处的信息。确保将其复制到 Ruby 的 bin 目录中(或路径上的任何其他位置)。

  3. 确保您的 Gemfile (app-root/Gemfile) 列出了要求:

    gem 'sqlite3-ruby', ">= 1.3.1", :require => 'sqlite3'

  4. 现在执行“rake db:migrate”(那时应该可以工作)。

我没有找到 Rails 3.0.0 坚持安装版本 sqlite3-ruby 1.2.5 的原因,但是安装了那个版本,sqlite3 对我不起作用。

【讨论】:

  • 这也适用于我的 os x 机器。我在我的 gemfile 中添加了以下内容,它解决了这个问题。 gem 'sqlite3-ruby', ">= 1.3.1", :require => 'sqlite3'。我目前正在运行 ruby​​ 1.9.2 和 Rails 1.3
猜你喜欢
  • 1970-01-01
  • 2013-10-02
  • 2019-10-06
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-28
  • 2011-06-13
相关资源
最近更新 更多