我不知道发生了什么,但是当我创建一个新模型并希望运行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版本?
答案 0 :(得分:3)
您可以按照以下步骤修复此rake版本冲突。
使用命令gem uninstall rake
使用命令gem install rake --version 10.5.0
您还可以将Gemfile
中的佣金版本更新为11.0.1
此外,如果您使用rvm
,请确保在使用不同的ruby版本时切换gemset时rake版本不会更改。
答案 1 :(得分:2)
这是因为Rake 11.0.1在您的系统中可用,但您的Rails应用程序正在使用Rake 10.5.0。
您的应用使用Gemfile.lock文件中指定的宝石,该文件是您在第一次运行bundle install
时由Bundler创建的。
更新你的宝石可以解决这个问题。根据{{3}}:
运行命令
bundle update
以更新您的宝石。
Bundler将为您更新Gemfile.lock文件。
答案 2 :(得分:0)
尝试在rake db:migrate命令之前为bundle exec添加前缀。
bundle exec rake db:migrate
答案 3 :(得分:0)
您的系统宝石与宝石文件中的宝石之间存在冲突。看起来您的本地系统正在使用rake 11.0.1,但您的rails版本使用的是10.5.0。
有两种方法可以解决这个问题:
1)使用bundle exec rake db:migrate
。这将在gem文件中指定的gem中执行rake任务。 (见http://bundler.io/man/bundle-exec.1.html)
2)更新系统宝石,使它们与宝石文件中指定的宝石相匹配。
在这两者中,1)是更简单的选择。