2009-03-04 4 views
1

lib/tasks 디렉토리에있는 RubyOnRails 앱용 레이크 작업 파일이 있습니다. [rake db : migrate VERSION = 0]을 실행하면 컴파일러가 lib/tasks 파일의 구문을 검사하도록 강제하는 것 같습니다. 구문이 잘못된 파일이 있으면 [rake db : migrate]가 실행되지 않습니다. 왜? lib/tasks에 잘못된 파일이 있으면 어떻게 될까요? 여기서 무슨 일이 일어나고있는거야? 감사.[rake db : migrate]의 초기화가 lib/tasks 디렉토리의 rake 태스크에 대한 구문 검사를 실행하는 이유는 무엇입니까?

답변

1

Rake가 실행되면 .rake 개의 파일이 모두 lib/tasks 폴더에 자동으로로드됩니다. 이러한 작업을로드 할 때 구문 오류가 있으면 잡히게됩니다.

+0

어떻게 당신이 알 수 있습니까? 이것에 대해 이야기하는 문서가 있습니까? – fooledbyprimes

+0

어딘가에 Rails 문서에 있습니다. Rails가 사용하는 설정 규칙보다 관례입니다. – erik

+0

레일과 함께 제공되는 레이크 유틸리티를 실행할 때 레일 관련 규칙을 제공하기 위해 트위 킹 된 버전의 레이크라고 할 수 있습니까? – fooledbyprimes

2

rake이 실행되면 .rake 파일이 모두 실행되도록 지시 된 파일을 찾기 전에 lib/tasks에로드됩니다. 로드 순서에서 나중에 파일에 의해 태스크가 겹쳐 쓸 수 있기 때문에 원하는 파일을 찾을 때 중지하지 않고 모든 파일을로드합니다.

당신은 당신이 원하는 rakefile를 지정하여 모두가로드 것을 방지 할 수 있습니다

rake mytask --rakefile lib/my_task.rake 
관련 문제