2011-02-03 2 views
2

Rails 마이그레이션 작업을 호출 할 때 rake halt execution을 실행하는 방법이 있습니까? 지금 당장은 각각을 시도하면서 곧바로 달린다. 내가 정말로 원하는 것은 drop을 시도한 다음 create를 시도하고, 그 중 하나가 성공하면 migrate를 실행 한 다음 성공하면 시드를 실패한 경우 중지하고 오류를 표시합니다.Rake - Rails on Rails가 오류를 마이그레이션합니까?

각 작업에 대해 호출을 시도했지만 결과를 테스트했지만 올바른 것은 아닙니다.

감사합니다.

task :fresh_start => [ 
    'db:drop', 
    'db:create', 
    'db:migrate', 
    'db:seed'] do 
end 

답변

0

기본적으로 레이크는 예외가 발생했을 때 중지됩니다. 예를 들어, 다음은 "그"를 결코 인쇄하지 않을 것입니다.

task :this do 
    puts "This" 
    raise "Fail!" 
end 

task :that do 
    puts "That" 
end 

task :default => [:this,:that] 

아니겠습니까?

+0

이상적입니다. 나는 Rails가 작업을 마이그레이션한다고 부르고 있는데, 내부적으로 예외를 던지지 않는 것 같다. – evets

+1

내가 정말로 찾고있는 것은 Rails 작업에서 알려진 결과라고 생각한다. Rake :: Task [db : drop ']. invoke를 호출한다. 예를 들어 db : drop이 실패 또는 성공 또는 다른 상태 코드를 반환하는 경우 – evets

관련 문제