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
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
Rake::Task['reklamer:orville'].invoke
ou
Rake::Task['reklamer:orville'].invoke(args)
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.
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
Dans Rails 4.2, les méthodes ci-dessus ne fonctionnaient pas.
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
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é.
voici un très bon tutoriel sur l'exécution des tâches de rake que j'ai trouvé utile ..