[英]'rake' “in order to” 'rake'
要为我的Ruby on Rails 3应用程序准备数据库,我需要在终端中运行以下步骤:
rake db:create
rake db:migrate
rake db:seed
是否可以将所有这些步骤合而为一? 也许可以运行一个“ rake”命令,该命令将“触发”另一个“ rake”命令……但是如何呢?
您可以定义自己的瑞克任务,这些任务将其他任务称为前提条件:
# lib/tasks/my_tasks.rake
namespace :db do
desc "create, migrate and seed"
task :do_all => [:create,:migrate,:seed] do
end
end
通常,任务的主体将包含Ruby代码以执行某些操作,但是在这种情况下,我们只是依次调用了三个必备任务( db:create
, db:migrate
和db:seed
)。
不需要空的do-end块,例如(对于zetetic的答案)
$ cat lib/tasks/my_tasks.rake
# lib/tasks/my_tasks.rake
namespace :db do
desc "create, migrate and seed"
task :do_all => [:create,:migrate,:seed]
end
rake db:create db:migrate db:seed
将完成所有这些工作。
zeteitic没错,但是如果您不想在“ db”下命名此任务的命名空间,则需要更多类似这样的东西:
desc "Bootstrap database."
task :bootstrap => ["db:create", "db:migrate", "db:seed"] do; end
并在命令行上:
rake bootstrap
# => create, migrate and seed db
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.