2012-05-23 3 views
2

문서에서 테스트 환경에서 rake (인수 없음)를 실행하더라도 데이터베이스가 항상 지워진다는 것을 기억합니다. 나는 그런 일을하고 싶다. 그래서 내가 Rake를 실행할 때 Rake task가 실행되고있는 상태인지, 또는 task를 실행하든 안하든 상관 없다. 이것이 가능한가? 기본 작업이 시작되는 곳입니까?레이크 작업이 실행될 때 항상 실행되는 레이크 작업을 만들려면 어떻게해야합니까?

답변

2

rakefile이라는 파일을 작업을 실행할 디렉터리에 만듭니다. 방금 입력하면 "레이크"my_default_task가 실행되도록 이 코드를 만들 것입니다 : 당신이 rake my_not_default_task를 입력 한 경우

task :default => 'my_default_task' 

    task :my_default_task do 
    puts "Now I am doing the task that Tempus wants done when he/she types 'rake' in the console." 
    end 

    task :my_not_default_task do 
    puts "This isn't the default task." 
    end 

그러나, 다음 my_default_task 실행하지 않을 것입니다. 당신이 상관없이 여기에 실행하려는 경우 당신이 할 수있는 한 가지입니다

task :default => 'my_default_task' 

task :my_default_task do 
    puts "This is the default task" 
end 

task :my_not_default_task do 
    puts "This isn't the default task." 
end 

Rake::Task['my_default_task'].invoke 

이 코드의 마지막 행은 다른 작업을 호출 할 때 my_default_task도 실행되도록, 그래서 당신이 '는 my_default_taskrake my_not_default_task 입력 한 경우에도 것 운영.

편집 : 당신은 레일과 함께 작업 할 때 당신이 rake

Jason Seifer has a real nice tutorial on rake을 수행 할 때 자동적으로 실행할 것입니다 .rake 및 레일의 연장으로 lib/tasks 폴더에있는 파일에 위의 작업을 넣을 수 있습니다.

+0

물론, 레일즈 관련 작업을 호출하더라도 내 작업이 실행되도록하려면 어떻게해야합니까? – Geo

+0

@Tempus Rails에 대한 귀하의 질문에 대한 답변을 편집했습니다. – vlasits

관련 문제