【问题标题】:rake db:migrate postgreSQLrake db:迁移 postgreSQL
【发布时间】:2010-12-23 16:42:50
【问题描述】:

我终于安装了 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>'

有人对它在寻找什么有任何想法吗?我在与 pg.rb 相同的目录中有一个 pg_ext.so 文件。

【问题讨论】:

  • 您运行的是哪个版本的 Postgres gem (pg)?

标签: ruby-on-rails ruby postgresql


【解决方案1】:

Windows 程序无法加载 .so 文件 - 它们改为加载 .dll 文件。您需要为 Windows 编译的 pg 构建,或者您需要在 Linuxy 环境(如 msys 或 cygwin)中运行 Ruby。

【讨论】:

  • 我从 msys 运行。我无法让“gem install pg”在常规命令提示符下工作。还有其他想法吗?
  • 当您运行“gem install”时,具体会发生什么?请将其添加到您的问题中。
【解决方案2】:

问题在于您的 pg gem 版本。 windows pg 0.9.0 有一个特殊版本。 为了让它在 Windows 上运行:

  1. 卸载当前 pg 0.10.0
  2. 按如下方式安装 pg:gem install pg --version=0.9.0 -- --with-pg-config=/short/path/to/postresql/bin (要获得短路径,您可以简单地将目录更改为 PostgrSQL bin,然后在 cmd 中键入 command,它会自动将路径更改为短版本)

  3. 然后编辑您的项目 Gemfile 以使用正确的 pg gem 版本 (0.9.0)

就是这样。

祝你好运

【讨论】:

  • 10 个月后,以后的版本现在可以使用吗?我需要 pg 和 activerecord-postgis-adapter。 activerecord-postgis-adapter 似乎至少需要 0.10.0。
猜你喜欢
  • 2013-09-07
  • 1970-01-01
  • 2013-02-01
  • 2012-11-17
  • 2012-02-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多