“尝试rake db:create时,没有这样的文件可以加载 - pg”

时间:2010-12-30 17:59:04

标签: ruby-on-rails ruby postgresql gem

我的问题的症状非常简单:

$ rake db:create
(in /home/jason/projects/blog)
rake aborted!
no such file to load -- pg

(See full trace by running task with --trace)

我已经成功运行bundle installgem install pg,所以我不知道还有什么需要做的。

这是我的`config / database.yml,如果它有帮助:

# SQLite version 3.x
#   gem install sqlite3-ruby (not necessary on OS X Leopard)
development:
  adapter: postgresql
  encoding: unicode
  database: blog_development
  pool: 5
  username: blog
  password: foo

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: postgresql
  encoding: unicode
  database: blog_development
  pool: 5
  username: blog
  password: foo

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

3 个答案:

答案 0 :(得分:4)

我明白了。如果我在pg中使用postgresql代替config/database.yml,则可以。

答案 1 :(得分:1)

转到控制台并在下面输入:

vim Gemfile

文件内部推荐如下:

- #gem 'sqlite3-ruby', :require => 'sqlite3'

在文件内添加以下内容:

- gem 'pg', :require => 'pg'

问题解决了!!! :-)享受!

答案 2 :(得分:0)

一种可能性是您运行的rake二进制文件来自另一个ruby / gem环境,并且它无法访问您已安装的gem。

如果您安装了多个版本的ruby,请尝试运行which gem然后which rake以查看它们是否从同一个bin目录运行。例如,在我的机器上,两个二进制文件都是在同一个Ruby安装下的bin目录中执行的:

/Users/scott/.rvm/rubies/ruby-1.9.2-p136/bin/gem

/Users/scott/.rvm/gems/ruby-1.9.2-p136/bin/rake

如果您的系统上只安装了一个ruby版本,那么这不是答案!