繁体   English   中英

“耙”“为了”“耙”

[英]'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:createdb:migratedb: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.

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