111 votes

Comment exécuter des tâches de rake à partir de la console?

Je veux appeler ma tâche de rake depuis la console. Est-ce faisable? Si oui, comment le faire?

J'ai essayé ceci sur console:

 require 'rake'
Rake::Task['my_task'].invoke
 

mais cela me donne cette erreur:

 RuntimeError: Don't know how to build task
 

c'est comme si le râteau ne pouvait pas trouver la tâche.

Toute aide serait appréciée.

Je vous remercie

Edit: j'utilise des rails 2.3.5

227voto

Daniel Rikowski Points 27193

L'exécution de vos tâches de rake nécessite deux étapes:

  1. Chargement du râteau
  2. Chargement de vos tâches de rake

Vous manquez la deuxième étape.

Normalement, cela se fait dans le fichier Rakefile, mais vous devez le faire manuellement ici:

 require 'rake'
MyRailsApp::Application.load_tasks # <-- MISSING LINE
Rake::Task['my_task'].invoke
 

(Assurez-vous de remplacer MyRailsApp par le nom de votre application Rails.)

18voto

garno Points 306

La façon la plus simple de le faire est d’exécuter% x [ commande ] à partir de l’irb. Je ne suis pas sûr si ce que vous voulez réaliser cependant.

 %x[rake db:migrate]
 

EDIT: Je recommande fortement d'utiliser .invoke comme le dit Daniel dans la réponse suivante.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X