2011-08-17 18 views
6

Ho aggiornato a rails 3.0.9 che ha introdotto problemi di rake. Ho risolto tutto tranne che per un problema con un cron job.problema di cron e bundle exec

Ciò usata per funzionare:

#!/bin/sh 
source /usr/local/rvm/scripts/rvm 
cd /home/p1r65759/apps/abbc/ 
/usr/local/bin/rake refresh_events RAILS_ENV=production 

Ma ora ottengo questo errore: Hai già attivato rastrello 0.8.7, ma il vostro Gemfile richiede rake 0.9.2. Prendi in considerazione l'utilizzo di bundle exec. /home/p1r65759/apps/abbc/Rakefile: 4: in `' (Visualizza intera traccia eseguendo un'attività con --trace)

Come modificare il mio script per utilizzare fascio exec in modo che utilizzerà il corretto versione di rake ed eseguita correttamente? Grazie.

+0

Avere un problema simile, ma senza RVM. Ad ogni modo, forse puoi specificare il percorso per il rake 0.9.2 o aggiornare il tuo rake gem di sistema a 0.9.2 (a seconda se questa è l'unica app sul server ...) – wesgarrison

+0

Risolto, grazie al supporto tecnico su HostingRails.com . Ho appena modificato l'ultima riga per raggruppare exec rake refresh_events RAILS_ENV = production. Non aveva nemmeno bisogno del percorso di fronte. Non sapevo che potessi farlo. – Brett

+0

Aggiungilo come risposta, quindi, e accettalo. Per i posteri e i futuri googler :-) – wesgarrison

risposta

9

Se si utilizza bundler per l'applicazione, non è necessario utilizzare "/ usr/local/bin/rake" come percorso per rake.

si può semplicemente usare

bundle exec rake

in modo che il nuovo script sarà

 
#!/bin/sh 
source /usr/local/rvm/scripts/rvm 
cd /home/p1r65759/apps/abbc/ 
bundle exec rake refresh_events RAILS_ENV=production 

fascio exec funziona perché si è già nella directory del progetto.

E non dimenticare di includere il rastrello nel tuo Gemfile.

4

invece di

/usr/local/bin/rake refresh_events RAILS_ENV=production 

si dovrebbe usare

bundle exec rake refresh_events RAILS_ENV=production 

o meglio ancora installare il pacchetto con --binstubs:

bundle install --binstubs --without development test 

allora si avrà bin/rake:

./bin/rake refresh_events RAILS_ENV=production 
Problemi correlati