Ruby on rails rakedb:迁移postgreSQL

Ruby on rails rakedb:迁移postgreSQL,ruby-on-rails,ruby,postgresql,Ruby On Rails,Ruby,Postgresql,我终于得到了gem pg来安装。现在,当我迁移数据库时,我得到以下信息: $ rake db:migrate (in c:/rubyDev/bsbaslic) rake aborted! no such file to load -- 1.9/pg_ext c:/Ruby192/lib/ruby/gems/1.9.1/gems/pg-0.10.0/lib/pg.rb:10:in `require' c:/Ruby192/lib/ruby/gems/1.9.1/gems/pg-0.10.0/lib

我终于得到了gem pg来安装。现在,当我迁移数据库时,我得到以下信息:

$ rake db:migrate
(in c:/rubyDev/bsbaslic)
rake aborted!
no such file to load -- 1.9/pg_ext
c:/Ruby192/lib/ruby/gems/1.9.1/gems/pg-0.10.0/lib/pg.rb:10:in `require'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/pg-0.10.0/lib/pg.rb:10:in `<top (required)>'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.3/lib/bundler/runtime.rb:64:in `require'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.3/lib/bundler/runtime.rb:64:in `block (2 levels) in require'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.3/lib/bundler/runtime.rb:62:in `each'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.3/lib/bundler/runtime.rb:62:in `block in require'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.3/lib/bundler/runtime.rb:51:in `each'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.3/lib/bundler/runtime.rb:51:in `require'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.3/lib/bundler.rb:112:in `require'
c:/rubyDev/bsbaslic/config/application.rb:7:in `<top (required)>'
<internal:lib/rubygems/custom_require>:29:in `require'
<internal:lib/rubygems/custom_require>:29:in `require'
c:/rubyDev/bsbaslic/Rakefile:4:in `<top (required)>'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2373:in `load'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:1991:in `run'
c:/Ruby192/bin/rake:31:in `<main>'
$rake数据库:迁移
(c:/rubyDev/bsbaslic格式)
雷克流产了!
没有要加载的文件--1.9/pg_ext
c:/Ruby192/lib/ruby/gems/1.9.1/gems/pg-0.10.0/lib/pg.rb:10:in'require'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/pg-0.10.0/lib/pg.rb:10:in`'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.3/lib/bundler/runtime.rb:64:in'require'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.3/lib/bundler/runtime.rb:64:in'block(2级)in require'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.3/lib/bundler/runtime.rb:62:in'each'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.3/lib/bundler/runtime.rb:62:in'block in require'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.3/lib/bundler/runtime.rb:51:in'each'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.3/lib/bundler/runtime.rb:51:in'require'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.3/lib/bundler.rb:112:in'require'
c:/rubyDev/bsbasic/config/application.rb:7:in`'
:29:在'require'中
:29:在'require'中
c:/rubyDev/bsbaslic/Rakefile:4:in`'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2373:in'load'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2373:in'raw\u load\u rakefile'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2007:in'block in load_rakefile'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2058:in'standard_exception_handling'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2006:in'load_rakefile'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:1991:in'run'
c:/Ruby192/bin/rake:31:in`'

有人知道它在找什么吗?我有一个pg_ext.so文件,它和pg.rb在同一个目录中

Windows程序无法加载
。因此
文件-它们将加载
.dll
文件。您需要一个为Windows编译的
pg
版本,或者您需要在Linuxy环境(如msys或cygwin)中运行Ruby。

问题在于您的pg gem版本。windows pg 0.9.0有一个特殊版本。 要使其在windows上工作,请执行以下操作:

  • 卸载当前的pg 0.10.0
  • 安装pg如下:gem安装pg--version=0.9.0--with pg config=/short/path/to/postresql/bin (要获得短路径,您只需将目录更改为PostgrSQL bin,然后在cmd中键入命令,它将自动将路径更改为短路径)

  • 然后编辑项目gem文件以使用正确的pg gem版本(0.9.0)

  • 就这样


    祝你好运

    我在msys跑步。我无法让“gem install pg”在常规命令提示符下工作。还有其他想法吗?当你运行“gem安装”时,具体会发生什么?请在你的问题中加上这一点。你在运行什么版本的Postgres gem(pg)?10个月后,更高版本现在可以工作了吗?我需要pg和activerecord postgis适配器。activerecord postgis适配器似乎至少需要0.10.0。