2012-11-21 126 views
26

我想要做「耙db:遷移」,它給了我這個錯誤。耙子中止!你已經激活耙10.0.2,但你的Gemfile需要耙0.9.2.2

Andy:AcademyAir Andy$ rake db:migrate 
/Users/Andy/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler/runtime.rb:197: warning: Insecure world writable dir /usr in PATH, mode 040777 
rake aborted! 
You have already activated rake 10.0.2, but your Gemfile requires rake 0.9.2.2. Using bundle exec may solve this. 
/Users/Andy/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler/runtime.rb:31:in `block in setup' 
/Users/Andy/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler/runtime.rb:17:in `setup' 
/Users/Andy/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler.rb:116:in `setup' 
/Users/Andy/.rvm/gems/ruby-1.9.2-p290/gems/bundler-1.2.2/lib/bundler/setup.rb:7:in `<top (required)>' 
/Users/Andy/Desktop/AcademyAir/config/boot.rb:6:in `<top (required)>' 
/Users/Andy/Desktop/AcademyAir/config/application.rb:1:in `<top (required)>' 
/Users/Andy/Desktop/AcademyAir/Rakefile:5:in `<top (required)>' 
(See full trace by running task with --trace) 
+0

獲取看看[鏈接] [1]。它可以解決問題。 [1]:http://stackoverflow.com/questions/13400587/activated-ruby-rake-10-0-1-require-10-0-0/13418530#13418530 – adcosta

+0

可能的重複[你已經激活了rake 0.9.0,但是你的Gemfile需要rake 0.8.7](http://stackoverflow.com/questions/6080040/you-have-already-activated-rake-0-9-0-but-your -gemfile-requires-rake-0-8-7) – user456584

回答

48

試試這個bundle exec rake db:migrate

刪除耙10.0.2寶石

通過使用gem uninstall rake,並刪除10.0.2版本耙寶石

,然後嘗試rake db:migrate

爲什麼錯誤c omes:耙寶石在你的寶石列表中的兩個版本(10.0.2和0.9.2.2)安裝,使這個錯誤出現*

另一種方法是你可以做bundle update

+0

不工作也試過,也是 – Andy

+0

''bundle bundle rake db:migrate /Users/Andy/.rvm/gems/ruby-1.9.2-p290/gems/ bundler-1.2.2/lib/bundler/runtime.rb:197:警告:PATH中不安全的可寫dir/usr,模式040777 /Users/Andy/.rvm/gems/ruby-1.9.2-p290/gems/ bundler-1.2.2/lib/bundler/runtime.rb:197:警告:不安全的世界可寫d ir/usr在PATH中,模式040777''' – Andy

+0

我更新我的代碼嘗試 –

3

我剛剛碰到了。一樣的問題。

  1. 我插在我gemfilen寶石 '耙', '〜> 10.0.1'[在你的情況應該是'10 .0.2' ]
  2. 我刪除了我的Gemfile鎖定
  3. 我跑耙數據庫:再次遷移,它的工作。

我在這裏得到了這個提示:Activated Ruby RAKE 10.0.1, require 10.0.0

更新:在我來說,我並沒有耙複製。我只是在我的寶石10.0.1版本。

6

我能夠通過開放的Gemfile,改變gem 'rake', '~> 0.9.2.2'gem 'rake', '~> 10.0.1'

+0

也適合我!謝謝! – danwit

42

爲我解決這個問題,我只是跑bundle update,一切便又工作。

+4

這也適用於我 – Neikos

+0

但這也會更新其他寶石,所以解決這個問題的方法是將Gemfile.lock中的rake版本從0.9.2.2更改爲10.0.1,然後運行bundle命令。 – Sivan

+3

具體來說,'捆綁包更新耙' – user456584

4

在你Gemfile,明確設定的最新耙版本:

gem 'rake', '~> 10.0.1' 

然後運行

$ bundle update rake 

然後嘗試

+1

ou應該首先刪除您的Gemfile.lock文件並再次捆綁安裝,然後使用 rake db:migrate –

0

改變其位於無論是在Gemfile中和gemlock版本到控制檯中顯示的版本號,它將完成

2

運行解決同一個問題:

bundle update 

這將更新您的耙寶石到最新版本,並允許您運行遷移。

如果您使用的是gemset:在更新rake更新本地gemset後,請務必運行bundle install

1

發生這種情況是因爲您正在使用系統中的rake。 (默認爲最新版本) 的解決方法是使用如下命令:

bundle exec rake db:migrate 

此外,您還可以創建別名。因爲這個命令太大,難以編寫。

echo "alias be='bundle exec'" >> ~/.bash_profile 
source ~/.bash_profile 

然後你可以使用遵循簡短的命令:

be rake db:migrate