Development Tip

Rails 레이크 작업 실행 방법

yourdevel 2020. 10. 9. 12:28
반응형

Rails 레이크 작업 실행 방법


터미널 / 콘솔에서이 레이크 파일을 어떻게 실행합니까?

lib / tasks의 내 statistik.rake

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

Rails 콘솔에서 Rake 작업을 실행해서는 안되며 대신 터미널 / 명령 프롬프트에서 다음을 실행하십시오.

rake task_name

정말로 Ruby에서 Rake 작업을 실행 해야 한다면 다음 을 수행 할 수 있습니다.

Rake::Task['task_name'].invoke

그러나 그것은 일반적으로 다른 작업을 실행하기 위해 Rake 작업 자체에서만 수행됩니다.

단일 작업으로 동일한 네임 스페이스에서 여러 작업을 실행하려면 네임 스페이스에 다음과 같은 새 작업을 만듭니다.

task :runall => [:iqmedier, :euroads, :mikkelsen, :orville ] do
  # This will run after all those tasks have run
end

Rake::Task['reklamer:orville'].invoke

또는

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

시도해 보셨습니까 rake reklamer:iqmedier?

내 사용자 정의 레이크 작업은 lib / tasks가 아닌 lib 디렉토리에 있습니다. 그게 중요한지 확실하지 않습니다.


가끔 레이크 작업이 콘솔에로드되지 않는 경우가 있습니다.이 경우 다음 명령을 시도해 볼 수 있습니다.

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

레일 4.2에서는 위의 방법이 작동하지 않았습니다.

  1. 터미널로 이동합니다.
  2. 레이크 파일이있는 위치로 디렉토리를 변경합니다.
  3. rake task_name을 실행하십시오.
  4. 위의 경우 rake iqmedier 실행-iqmedir 작업 만 실행합니다.
  5. rake euroads 실행-euroads 작업 만 실행합니다.
  6. 해당 파일의 모든 작업을 실행하려면 동일한 파일 내에 다음을 할당하고 rake all을 실행합니다.

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

레이크 작업을 실행하는 방법을 잘 모르겠다면 먼저 어떤 작업이 있는지 먼저 확인하면 작업을 실행하는 명령도 나열됩니다.

rake --tasks터미널에서 실행하십시오 .

다음과 같은 작업이 나열됩니다.

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

그런 다음 rake gobble:dev:prime나열된대로 다음을 사용하여 작업을 실행할 수 있습니다 .


여기 내가 도움이 된 레이크 작업 실행에 대한 아주 좋은 튜토리얼이 있습니다 ..

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

참고 URL : https://stackoverflow.com/questions/5641747/rails-how-to-run-rake-task

반응형