Rake任务`[] =>%w [ensure_review_app环境,db:seed]`在做什么?

有人可以向我解释以下task :seed在做什么吗?具体在[]=>%w[]部分列出了sure_review_app,环境等?我认识到db:seed正在为数据库注入种子,但是被其他人正在做的事情弄糊涂了。

 task :seed,[] => %w[
        ensure_review_app
        environment
        db:seed
        seed:administrator
        seed:widgets
      ] do
        Rails.logger.tagged('Seed App') { |l| l.info("Finished seeding new Review App: #{ENV['HEROKU_APP_NAME']}") }
      end

Rake文件:

namespace :review_app do
  desc 'Ensure environment is one we shish to spread seed in'
  task :ensure_review_app do
    abort 'This is not a Heroku Review App' unless review_app?
  end

  desc 'Seeds a review app with a subset of realistic-looking data'
  task :seed,[] => %w[
    ensure_review_app
    environment
    db:seed
    seed:administrator
    seed:widgets
  ] do
    Rails.logger.tagged('Seed App') { |l| l.info("Finished seeding new Review App: #{ENV['HEROKU_APP_NAME']}") }
  end

  def review_app?
    !!ENV['HEROKU_PARENT_APP_NAME']
  end
end

如此处所示:https://gist.github.com/stevenharman/98576bf49b050b9e59fb26626b7cceff

我以为sure_review_app可能是一个文件,这是一个heroku命令吗?

izying110 回答:Rake任务`[] =>%w [ensure_review_app环境,db:seed]`在做什么?

这里提到的其他事情是您正在查看的任务的prerequisites。即它们是应在运行:seed任务之前运行的其他rake任务。

它们的格式有点奇怪([] => %w[...],因为任务指定该任务没有参数。您可以在rake文档的Tasks that Expect Parameters and Have Prerequisites部分中看到这一点。

通常,您会直接看到任务名称的先决条件,例如:

task seed: %w[ensure_review_app environment db:seed ... ]

选择使用rake review_app:seed运行该任务时,它将首先运行所有其他必备任务,然后运行review_app:seed任务。

您可以在发布的较长代码段中看到ensure_review_app任务。它正在做heroku的东西,但这和其他任务一样都是艰巨的任务。

您应该能够使用以下命令列出任何耙任务:

rake -T task_name

对于没有描述的任务,您可能需要使用-A

rake -A -T task_name
本文链接:https://www.f2er.com/3063573.html

大家都在问