[英]rails rake runs lib/tasks/scrape.rake when running rake db:migrate
[英]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.