bundle exec rake db:migrate导致"找不到可执行的rake"错误

go *_*mal 6 ruby-on-rails

我最近安装了Rails 3.1,现在我的旧Rails 3.0应用程序不会使用db:migrate.这是我尝试运行时会发生的事情bundle exec rake db:migrate.我在没有RVM的Ubuntu上

/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/shared_helpers.rb:142:in `block in cripple_rubygems': can't find executable rake (Gem::Exception)
    from /usr/local/lib/ruby/gems/1.9.1/bin/rake:19:in `<main>'
Run Code Online (Sandbox Code Playgroud)

当我运行时rake db:migrate,它输出:

rake aborted!
You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.8.7. Consider using bundle exec.

(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)

哪个耙子

/usr/local/bin/rake
Run Code Online (Sandbox Code Playgroud)

Til*_*ilo 10

把它放在你的Gemfile中:

gem 'rake' , '>= 0.9.2'
Run Code Online (Sandbox Code Playgroud)

并运行 bundle update


你需要在运行的环境中提供更多细节:

  • 哪个OS?
  • 你在使用RVM吗?
  • 这是一个全新的RVM设置吗?

1)尝试运行:

gem list | rake
Run Code Online (Sandbox Code Playgroud)

你得到什么输出?

2)如果你没有rake在输出中看到,那么这样做:

gem install rake 
Run Code Online (Sandbox Code Playgroud)

然后再试rake db:migrate一次

3)如果你看到rake,但它仍然不起作用,那么这样做:

which rake
Run Code Online (Sandbox Code Playgroud)

你得到什么输出?它应该看起来像这样:

~/.rvm/gems/ruby-1.9.2-p0/bin/rake
Run Code Online (Sandbox Code Playgroud)

  • 添加一个`:require => false`,通常不需要一直需要rake (2认同)