我試圖運行rake db:migrate
本地,但我發現下面的錯誤:Gem :: LoadError:Rake?
Gem::LoadError: You have already activated rake 10.2.2, but your Gemfile requires rake 10.1.1. Using bundle exec may solve this.
不知道爲什麼發生這種情況?它沒有出現在哪裏。
任何想法如何解決這個問題?
乾杯
我試圖運行rake db:migrate
本地,但我發現下面的錯誤:Gem :: LoadError:Rake?
Gem::LoadError: You have already activated rake 10.2.2, but your Gemfile requires rake 10.1.1. Using bundle exec may solve this.
不知道爲什麼發生這種情況?它沒有出現在哪裏。
任何想法如何解決這個問題?
乾杯
您可以刪除您的Gemfile.lock
。然後運行bundle install
,bundler會用正確的rake重新創建更新的Gemfile.lock
。
我剛剛做到了這一點,併爲我工作。
照它說的去做。呼叫耙作爲
bundle exec rake
或者alterantively,運行捆綁是這樣的:
bundle install --binstubs
然後:
bin/rake
發生這種情況,因爲是不同版本的rake
安裝在你係統,並且默認加載錯誤的系統。
嘗試運行bundle exec rake db:migrate
,看看是否適合你。
您似乎安裝了rake
的多個版本。請gem list
來確定是否屬於這種情況。
根據不同,您可能需要使用gem uninstall rake
來卸載一個版本。
這些都沒有爲我工作,但我找到了一個修復。在您正在創建的應用程序文件夾中(您可以在其中找到應用程序文件夾。)打開「Gemfile.lock」查找「rake 10.1.1」(只需使用find或search),將其更改爲10.2.2,然後保存即可。祝你好運
你不應該編輯Gemfile.lock – mwallace
我同意你的看法,但是效果很好 –
我認爲更新所有Gemfile.lock是危險的,特別是當你有許多寶石沒有特定的版本。有時候,當你更新寶石時,一些行爲會發生變化,並且發現它發生的原因真的很煩人。
至於我自己,我有同樣的問題和解決方案是修改的Gemfile:
gem 'rake', "~> 10.2.2"
到
gem 'rake', "~> 11.1.2"
,然後運行
bundle update rake
我沒有/不要在我的Gemfile中指定gem 'rake'
,所以我只是跑bundle update rake
,它正確地更新了Gemf ile.lock。
你需要小心使用這個方法,因爲它可能會改變項目中其他依賴項的版本。通常這不是問題,但您應該意識到它可能會帶來不兼容或回退 –
這就是將版本寫入Gemfile的原因。在其他地方部署時會發生同樣的問題。 – DonPaulie
當我刪除它時,它會在不到一秒的時間內自動重新創建 – Kunok