Rails how to run rake task

前端 未结 6 1332
傲寒
傲寒 2020-12-23 15:30

How do I run this rake file in terminal/console?

my statistik.rake in lib/tasks

desc \"Importer statistikker\"
namespace :reklamer do
  task :iqmedie         


        
相关标签:
6条回答
  • 2020-12-23 16:07
    Rake::Task['reklamer:orville'].invoke
    

    or

    Rake::Task['reklamer:orville'].invoke(args)
    
    0 讨论(0)
  • 2020-12-23 16:14

    In rails 4.2 the above methods didn't work.

    1. Go to the Terminal.
    2. Change the directory to the location where your rake file is present.
    3. run rake task_name.
    4. In the above case, run rake iqmedier - will run only iqmedir task.
    5. run rake euroads - will run only the euroads task.
    6. To Run all the tasks in that file assign the following inside the same file and run rake all

      task :all => [:iqmedier, :euroads, :mikkelsen, :orville ] do #This will print all the tasks o/p on the screen 
      end
      
    0 讨论(0)
  • 2020-12-23 16:20

    You can run Rake tasks from your shell by running:

    rake task_name
    

    To run from from Ruby (e.g., in the Rails console or another Rake task):

    Rake::Task['task_name'].invoke
    

    To run multiple tasks in the same namespace with a single task, create the following new task in your namespace:

    task :runall => [:iqmedier, :euroads, :mikkelsen, :orville] do
      # This will run after all those tasks have run
    end
    
    0 讨论(0)
  • 2020-12-23 16:24

    Sometimes Your rake tasks doesn't get loaded in console, In that case you can try the following commands

    require "rake"
    YourApp::Application.load_tasks
    Rake::Task["Namespace:task"].invoke
    
    0 讨论(0)
  • 2020-12-23 16:29

    Have you tried rake reklamer:iqmedier ?

    My custom rake tasks are in the lib directory, not in lib/tasks. Not sure if that matters.

    0 讨论(0)
  • 2020-12-23 16:32

    If you aren't sure how to run a rake task, first find out first what tasks you have and it will also list the commands to run the tasks.

    Run rake --tasks on the terminal.

    It will list the tasks like the following:

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

    You can then run your task with: rake gobble:dev:prime as listed.

    0 讨论(0)
提交回复
热议问题