使用rails命令“rake db:create:all”时出错 - 我认为它与Ruby的版本冲突有关

问题描述 投票:0回答:2

我创建了一个新的 Rails API 应用程序。我正在尝试使用 postgres db 命令为应用程序创建数据库表

rake db:create:all

我收到此错误:

 AM@~/Documents/RailsWS/iosprototypevendors >rake db:create:all --trace
 rake aborted!
 Valid types are [:development, :runtime], not nil
 /usr/local/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:52:in `initialize'
 /Users/AM/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler- 1.2.0/lib/bundler/resolver.rb:371:in `new'
 /Users/AM/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-     1.2.0/lib/bundler/resolver.rb:371:in `search'
 /Users/AM/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-
   ..............

经过一番谷歌搜索,我发现这可能与选择的 ruby 版本错误有关。

(我最近将我的操作系统升级到了 Mountain Lion,并且必须将我的 Rails 和 Ruby 版本升级到最新版本。为了让 Rails 正常运行,我经历了 8 个小时的痛苦。Rails 现在可以在我的系统上运行,但这是一个刚刚出现的差异上)。


另外

我还注意到,对于我系统上的不同rails应用程序,当我使用rails -v检查它们的版本时,rails的版本有时会显示为3.2.1,有时会显示为3.2.8,有时我会收到上述错误消息。

怎么会发生这种事? 这是我通过运行此命令得到的结果:

rvm info

ruby-1.9.3-p194:

system:
 uname:       "Darwin A-Ms-MacBook-Pro.local 12.1.0 Darwin Kernel Version 12.1.0: Tue Aug 14 13:29:55 PDT 2012; root:xnu-2050.9.2~1/RELEASE_X86_64 x86_64"
 bash:        "/bin/bash => GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin12)"
 zsh:         "/bin/zsh => zsh 4.3.11 (i386-apple-darwin12.0)"

 rvm:
  version:      "rvm 1.15.8 (stable) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]"
  updated:      "1 day 22 hours 15 minutes 59 seconds ago"

 ruby:
  interpreter:  "ruby"
  version:      "1.9.3p194"
  date:         "2012-04-20"
  platform:     "x86_64-darwin12.1.0"
  patchlevel:   "2012-04-20 revision 35410"
  full_version: "ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin12.1.0]"

 homes:
  gem:          "/Users/AM/.rvm/gems/ruby-1.9.3-p194"
  ruby:         "/Users/AM/.rvm/rubies/ruby-1.9.3-p194"

 binaries:
   ruby:         "/Users/AM/.rvm/rubies/ruby-1.9.3-p194/bin/ruby"
   irb:          "/Users/AM/.rvm/rubies/ruby-1.9.3-p194/bin/irb"
   gem:          "/Users/AM/.rvm/rubies/ruby-1.9.3-p194/bin/gem"
   rake:         "/Users/AM/.rvm/gems/ruby-1.9.3-p194@global/bin/rake"

 environment:
   PATH:         "/Users/AM/.rvm/gems/ruby-1.9.3-p194/bin:/Users/AM/.rvm/gems/ruby- 1.9.3-p194@global/bin:/Users/AM/.rvm/rubies/ruby-1.9.3-    p194/bin:/Users/AM/.rvm/bin:/Users/AM/.rbenv/shims:/Users/AM/.rbenv/bin:/usr/local/bin:/usr/   local/sbin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/PostgreSQL/9.1/bin/"
  GEM_HOME:     "/Users/AM/.rvm/gems/ruby-1.9.3-p194"
  GEM_PATH:     "/Users/AM/.rvm/gems/ruby-1.9.3-p194:/Users/AM/.rvm/gems/ruby-1.9.3-p194@global"
  MY_RUBY_HOME: "/Users/AM/.rvm/rubies/ruby-1.9.3-p194"
  IRBRC:        "/Users/AM/.rvm/rubies/ruby-1.9.3-p194/.irbrc"
  RUBYOPT:      ""
  gemset:       ""

如有任何帮助,我们将不胜感激

编辑


这是我运行命令时得到的结果

echo $PATH on my terminal



/Users/AM/.rbenv/shims:
/Users/AM/.rbenv/bin:
/usr/local/bin:/usr/local/sbin:
/usr/local/mysql/bin:
/Users/AM/.rvm/gems/ruby-1.9.3-p194/bin:
/Users/AM/.rvm/gems/ruby-1.9.3-p194@global/bin:
/Users/AM/.rvm/rubies/ruby-1.9.3-p194/bin:
/Users/AM/.rvm/bin:
/usr/local/bin:
/usr/bin:/usr/bin:
/bin:/usr/sbin:/sbin:
/usr/local/bin:
/Library/PostgreSQL/9.1/bin/

这些是我系统上的路径

ruby-on-rails ruby postgresql rake
2个回答
1
投票

这是一个已知路径问题。检查您的路径是否包含有效的 gem 路径。你安装的 ruby 也没有

rvm
吗?看看:bundler的路径问题,改还是不改?


1
投票

所以我没有得到我正在寻找的答案。所以经过我自己的研究,我发现了这一点,(以防其他人也有这个问题)

Mountain Lion 附带 Postgresql 和原生 ruby 版本 1.8.7。现在的红宝石
版本是1.9.3。因此,一旦您升级到 Mountain Lion,请升级您的 Rails 版本
还有 ruby,并确保您运行的是正确的版本。

rvm是山狮上的版本管理工具,可以更新a并下载这些 为你。请参阅这篇文章这里

此外,如果您安装升级,您将拥有多个版本的 Ruby 和 Rails 你的电脑。因此,将正确的版本设置为默认版本变得很重要 系统。每次打开终端窗口时都必须通过命令执行此操作以检查 首先是版本:rails -v 和 ruby -v 或 rvm list

然后设置默认版本,如 rvm --default 1.9.3-p194 这将设置 该终端会话的默认值。如果您想要每个项目有更永久的设置,那么]
您必须在每个项目的根目录中创建一个 .rvmrc 文件并指定 供该项目使用的版本。再次查看上面链接的帖子。

© www.soinside.com 2019 - 2024. All rights reserved.