2012-11-21 20 views
26

Sto cercando di fare "rake db: migrate" e mi sta dando questo errore.rastrello interrotto! Hai già attivato il rake 10.0.2, ma il tuo Gemfile richiede il rake 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

ottenere uno sguardo al [link] [1]. Potrebbe risolvere il problema. [1]: http://stackoverflow.com/questions/13400587/activated-ruby-rake-10-0-1-require-10-0-0/13418530#13418530 – adcosta

+0

possibile duplicato di [ Hai già attivato il rake 0.9.0, ma il tuo Gemfile richiede 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

risposta

48

Prova questo bundle exec rake db:migrate

Rimuovere rastrello 10.0.2 gemma

Utilizzando gem uninstall rake e rimuovere 10.0.2 versione di rake gemma

e quindi provare rake db:migrate

Perché Errore c Omes: In te lista gemma due versioni (10.0.2 e 0.9.2.2) di rake gem install in modo che questo errore viene *

Un'altra soluzione è che si può fare bundle update

+0

Non funziona Ho provato anche questo – Andy

+0

'' 'bundle exec rake db: migrate /Users/Andy/.rvm/gems/ruby-1.9.2-p290/gems/ bundler-1.2.2/lib/bundler/runtime.rb: 197: avviso: directory scrivibile mondo insecure/usr in PATH, modalità 040777 /Users/Andy/.rvm/gems/ruby-1.9.2-p290/gems/ bundler-1.2.2/lib/bundler/runtime.rb: 197: warning: mondo insicuro scrivibile d ir/usr in PERCORSO, modo 040777''' – Andy

+0

Aggiorna il mio codice prova che –

3

ho appena incontrato. lo stesso problema.

  1. ho inserito nel mio gioiello gemfilen 'rake', '~> 10.0.1' [nel tuo caso dovrebbe essere '10 .0.2' ]
  2. Ho eliminato il mio Gemfile chiudo
  3. mi sono imbattuto rastrello db: migrazione di nuovo e ha funzionato.

ho ottenuto questo suggerimento qui: Activated Ruby RAKE 10.0.1, require 10.0.0

Aggiornamento: Nel mio caso io non ho rake duplicato. Ho solo nelle mie gemme la versione 10.0.1.

6

sono stato in grado di risolvere questo aprendo Gemfile e cambiando gem 'rake', '~> 0.9.2.2' a gem 'rake', '~> 10.0.1'

+0

Ha funzionato anche per me! Grazie! – danwit

42

Per quanto mi riguarda, ho appena eseguito bundle update e tutto funziona di nuovo a destra.

+4

Questo ha funzionato anche per me – Neikos

+0

Ma questo aggiornerà anche altre gemme, quindi una soluzione per questo sarebbe cambiare la versione del rake in Gemfile.lock da 0.9.2.2 a 10.0.1 e quindi eseguire il comando bundle. – Sivan

+3

In particolare, 'bundle update rake' – user456584

4

Nella tua Gemfile, impostare in modo esplicito l'ultima versione rake da:

gem 'rake', '~> 10.0.1' 

e quindi eseguire

$ bundle update rake 

Quindi provare

+1

o si dovrebbe prima cancellare il file Gemfile.lock e installare di nuovo bundle e quindi usare rake db: migrate –

0

cambiare la versione che si trova sia nella Gemfile e gemlock al numero di versione mostrato nella console, sarà fatto

2

risolto lo stesso problema eseguendo:

bundle update 

Questo aggiornerà il gioiello rastrello per la versione più recente e permetterà di eseguire la migrazione.

Se si utilizza un gemset: assicurati di eseguire bundle install dopo aver aggiornato il rake per aggiornare anche il tuo gemset locale.

1

Succede perché si sta usando il rastrello dal sistema. (Ultima versione di default) La soluzione è utilizzare il comando seguente:

bundle exec rake db:migrate 

Inoltre, è possibile creare alias. Perché questo comando è troppo grande e difficile da scrivere.

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

Quindi è possibile utilizzare seguire breve comando:

be rake db:migrate 
Problemi correlati