我正在尝试在本地运行rake db:migrate
,但我收到以下错误:
Gem::LoadError: You have already activated rake 10.2.2, but your Gemfile requires rake 10.1.1. Using bundle exec may solve this.
不确定为什么会这样?它来自无处。
知道如何解决这个问题吗?
干杯
答案 0 :(得分:13)
您可以删除Gemfile.lock
。然后运行bundle install
,bundler将使用正确的rake重新创建更新的Gemfile.lock
。
我刚刚这样做了,这对我有用。
答案 1 :(得分:4)
照其说的做。将rake称为
bundle exec rake
或者,可选地,像这样运行bundler:
bundle install --binstubs
然后:
bin/rake
这种情况正在发生,因为您的系统上安装了rake
的不同版本,并且默认情况下加载了错误版本。
答案 2 :(得分:1)
尝试运行bundle exec rake db:migrate
,看看它是否适合您。
您似乎安装了多个版本的rake
。请gem list
确定是否属于这种情况。
根据具体情况,您可能希望使用gem uninstall rake
卸载一个版本。
答案 3 :(得分:0)
这些都不适合我,但我找到了解决办法。在你正在创建的应用程序文件夹中(你找到app bin等)。打开你的" Gemfile.lock"找到" rake 10.1.1"(只需使用查找或搜索),将其更改为10.2.2,然后保存rake。祝你好运
答案 4 :(得分:0)
我认为更新所有Gemfile.lock是危险的,特别是当你有许多没有特定版本的宝石时。有时当你更新gem时,某些行为会发生变化,找到它发生的原因真的很烦人。
对于我自己,我遇到了同样的问题,解决方法是修改Gemfile:
gem 'rake', "~> 10.2.2"
到
gem 'rake', "~> 11.1.2"
然后运行
bundle update rake
答案 5 :(得分:0)
我没有/不在我的Gemfile中指定gem 'rake'
,所以我只是运行bundle update rake
,它正确更新了Gemfile.lock。