繁体   English   中英

为什么启动 [rake db:migrate] 会对 lib/tasks 目录中的 rake 任务运行语法检查?

[英]Why does initation of [rake db:migrate] run syntax check on rake tasks in the lib/tasks directory?

我有一个 RubyOnRails 应用程序的 rake 任务文件,它位于 lib/tasks 目录中。 运行 [rake db:migrate VERSION=0] 似乎会强制编译器检查 lib/tasks 文件中的语法。 如果存在语法错误的文件,则 [rake db:migrate] 不会运行。 为什么? 那么如果我在 lib/tasks 中有一个坏文件怎么办。 这里发生了什么? 谢谢。

rake运行时,它会先加载lib/tasks中的所有.rake文件,然后再查找它被指示运行的任务。 它加载所有文件,而不是在找到所需任务时停止,因为任务可以在加载顺序的后面被文件覆盖。

您可以通过指定所需的 rakefile 来避免将它们全部加载:

rake mytask --rakefile lib/my_task.rake

当 Rake 运行时,它会自动加载lib/tasks文件夹中的所有.rake文件。 当它加载这些任务时,如果您有语法错误,它将被捕获。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM