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

标签 ruby-on-rails ruby api postgresql rake

我创建了一个新的 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 <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5b2c3a22353e3e283e3c2e32351b3c363a323775383436" rel="noreferrer noopener nofollow">[email protected]</a>>, Michal Papis <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="dab7aabbaab3a99abdb7bbb3b6f4b9b5b7" rel="noreferrer noopener nofollow">[email protected]</a>> [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/

这些是我系统上的路径

最佳答案

这是一个已知路径问题。检查您的路径是否包含有效的 gem 路径。您是否也安装了没有 rvm 的 ruby​​?看看:Path's issue with bundler, to change or not to change?

关于ruby-on-rails - 使用rails命令 "rake db:create:all"时出错 - 我认为它与Ruby的版本冲突有关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12304414/

相关文章:

ruby-on-rails - Haml 格式

ruby-on-rails - Heroku 间歇性 H15 'Idle connection' 上传操作错误

ruby - vagrant ssh 在 Windows 上的 MobaXterm 中不起作用

ruby - 如何在模块定义之外访问 Module.nesting 的返回

json - 将 API 调用中的 json 插入 mongodb

python - 用Python通过api访问Json数据

ruby-on-rails - Capistrano 部署因 Capistrano-Harrow gem 的新请求而中断?

ruby - Bundler 可以根据我的 ruby​​ 版本(或受其他依赖项限制)自动安装最新版本吗?

javascript - 从父函数返回什么以获取从子函数/嵌套函数返回的值

ruby-on-rails - 如何使用 ruby​​ pg gem 列出 postgresql 数据库?