将多个 rake 任务合并为一个 rake 任务
我不想像这样单独运行每个 rake 任务:
rake db:drop
rake db:create
rake db:migrate
rake db:load
我想运行一个完成所有任务的 rake 任务。
这就是我的 rakefile:
desc 'This rebuilds development db'
namespace :rebuild_dev do
Rake::Task["db:drop"].execute
Rake::Task["db:create"].execute
Rake::Task["db:migrate"].execute
Rake::Task["db:load"].execute
end
当我运行它时,上面的内容不起作用。
Instead of running each rake task individually like this:
rake db:drop
rake db:create
rake db:migrate
rake db:load
I want to run one rake task that does all for.
This is what I have for my rakefile:
desc 'This rebuilds development db'
namespace :rebuild_dev do
Rake::Task["db:drop"].execute
Rake::Task["db:create"].execute
Rake::Task["db:migrate"].execute
Rake::Task["db:load"].execute
end
The above doesn't work when I run it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以通过对没有主体的任务的依赖来完成此操作。
You can do it with dependencies on a task with no body.
您想要
调用
而不是执行
。我自己的代码的一些摘录显示了如何传递变量:或者,您可以使任务依赖于另一个任务,就像我上面使用
:create
所做的那样,具体取决于clients:creation:checks< /代码>。
需要澄清的是,命名空间用于对任务进行分组,因此您必须像我上面那样在命名空间中实际定义任务。您不能简单地从命名空间内调用任务。
所以你上面的代码应该是:
You want
invoke
notexecute
. A little excerpt from my own code showing how to pass variables:Alternatively, you can make the task depend upon another task as I have done above with
:create
depending uponclients:creation:checks
.Just to clarify, a namespace is for grouping tasks, so you must actually define the tasks within the namespace as I have above. You can't simply call tasks from within a namespace.
So your code above should be: