0

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

  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 版本(这显然对我不起作用)。

4

1 回答 1

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 对我不起作用。

于 2010-09-27T11:41:20.420 回答