web-dev-qa-db-fra.com

Rails comment exécuter une tâche de rake

Comment puis-je exécuter ce fichier rake dans un terminal/une console?

mon statistik.rake dans lib/tasks

desc "Importer statistikker"
namespace :reklamer do
  task :iqmedier => :environment do
    ...
  end
  task :euroads => :environment do
    ...
  end
  task :mikkelsen => :environment do
    ...
  end
  task :orville => :environment do
    ...
  end
end
73
Rails beginner

Vous ne devriez pas exécuter de tâches Rake dans la console Rails, mais plutôt dans l'invite Terminal/Command en exécutant

rake task_name

Si vous avez vraiment doit exécuter une tâche Rake dans Ruby, vous devriez être capable de faire:

Rake::Task['task_name'].invoke

mais cela n'est généralement fait que dans une tâche Rake pour en exécuter une autre.

Pour exécuter plusieurs tâches dans le même espace-noms avec une seule tâche, créez la nouvelle tâche suivante dans votre espace-noms:

task :runall => [:iqmedier, :euroads, :mikkelsen, :orville ] do
  # This will run after all those tasks have run
end
102
Andrew Marshall
Rake::Task['reklamer:orville'].invoke

ou

Rake::Task['reklamer:orville'].invoke(args)
22
Luke W

Avez-vous essayé rake reklamer:iqmedier?

Mes tâches de rake personnalisées se trouvent dans le répertoire lib, pas dans lib/tasks. Je ne sais pas si ça compte.

20
CharlieMezak

Parfois, vos tâches de rake ne sont pas chargées dans la console. Dans ce cas, vous pouvez essayer les commandes suivantes.

require "rake"
YourApp::Application.load_tasks
Rake::Task["Namespace:task"].invoke
5
Prem

Dans Rails 4.2, les méthodes ci-dessus ne fonctionnaient pas.

  1. Allez au terminal. 
  2. Changez le répertoire à l'emplacement où votre fichier rake est présent.
  3. lancez rake nom_tâche.
  4. Dans le cas ci-dessus, exécutez rake iqmedier - n'exécutera que la tâche iqmedir.
  5. run rake euroads - n'exécutera que la tâche euroads.
  6. Pour exécuter toutes les tâches de ce fichier, assignez les éléments suivants dans le même fichier Et exécutez rake all.

    task :all => [:iqmedier, :euroads, :mikkelsen, :orville ] do #This will print all the tasks o/p on the screen 
    end
    
1
hari

Si vous ne savez pas comment exécuter une tâche rake, commencez par déterminer quelles tâches vous avez et la liste des commandes permettant d'exécuter les tâches apparaît également.

Exécutez rake --tasks sur le terminal.

Il listera les tâches comme suit:

rake gobble:dev:prime             
rake gobble:dev:reset_number_of_kits                                    
rake gobble:dev:scrub_prod_data

Vous pouvez ensuite exécuter votre tâche avec: rake gobble:dev:prime tel qu'indiqué.

0
Ruto Collins

voici un très bon tutoriel sur l'exécution des tâches de rake que j'ai trouvé utile ..

http://jasonseifer.com/2010/04/06/rake-tutorial

0
Harsha Lingampally