Ruby on rails 必须将bundle exec前置到rake db:migrate
我不知道发生了什么,但当我创建了一个新模型并希望运行Ruby on rails 必须将bundle exec前置到rake db:migrate,ruby-on-rails,ruby,rake,Ruby On Rails,Ruby,Rake,我不知道发生了什么,但当我创建了一个新模型并希望运行rake db:migrate时,它给了我以下错误: 雷克流产了!Gem::LoadError:您已经激活了rake 11.0.1, 但是您的Gemfile需要rake 10.5.0。将bundle exec 你的命令可以解决这个问题 我相信我没有对gem做任何更新。我告诉我在执行rake之前预先编写bundle exec,但我只想像以前一样运行rake db:migrate 如何使本地系统rake gem版本与rails rake gem版本
rake db:migrate
时,它给了我以下错误:
雷克流产了!Gem::LoadError:您已经激活了rake 11.0.1,
但是您的Gemfile需要rake 10.5.0。将bundle exec
你的命令可以解决这个问题
我相信我没有对gem做任何更新。我告诉我在执行rake之前预先编写bundle exec
,但我只想像以前一样运行rake db:migrate
如何使本地系统rake gem版本与rails rake gem版本相适应?在rake db:migrate命令之前尝试在bundle exec前面加前缀
bundle exec rake db:migrate
系统gem与gem文件中的gem之间存在冲突。看起来您的本地系统使用的是Rake11.0.1,但您的rails版本使用的是10.5.0 有两种方法可以解决此问题: 1) 使用
bundle exec rake db:migrate
。这将在gem文件中指定的gem上下文中执行rake任务。(见附件)
2) 更新系统gem,使其与gem文件中指定的匹配
在这两个选项中,1)是更简单的选项。您可以通过以下步骤修复此rake版本冲突
gem Uninstall rake卸载rake
gem Install rake--version 10.5.0
gem文件中的rake版本更新为11.0.1
另外,如果使用rvm
,请确保在使用不同的ruby版本时切换gemset时rake版本不会改变 发生这种情况是因为Rake 11.0.1在您的系统中可用,但您的Rails应用程序使用的是Rake 10.5.0
您的应用程序使用Gemfile.lock文件中指定的gems,该文件是在您第一次运行bundle安装时由Bundler创建的
更新你的gems修复了这个问题。根据:
运行命令bundle update
更新您的gems
Bundler将为您更新Gemfile.lock文件
当系统中存在两个不同的rake
版本时,通常会发生这种情况。找到了一个很好的解释,但我只想运行rake db:migrate而不使用bundle exec。