不能在Windows上使用sqlite3和ruby 1.9.2以及rails 3.0.0

时间:2010-09-25 12:33:29

标签: ruby-on-rails sqlite3-ruby

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

  1. 我已经使用Ruby on Rails 3年,使用不同的应用程序,并从1.2升级到2.3.9。我想尽快升级到3.0.0。
  2. 我读到的所有内容都告诉我使用当前的1.9.2版本的Ruby来使用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
  7. 我四处搜索并找到了一些答案,告诉他们自己为sqlite3安装二进制文件(这对我来说是遥不可及的)。

    所以这就是问题:

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

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

1 个答案:

答案 0 :(得分: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'(当时应该可以使用)。

  5. 我没有找到Rails 3.0.0坚持安装sqlite3-ruby 1.2.5版本的原因,但是安装了该版本后,sqlite3对我来说不起作用。