【问题标题】:Rake task what is `[] => %w[ensure_review_app environment, db:seed ]` doing?Rake 任务 `[] => %w[ensure_review_app environment, db:seed ]` 在做什么?
【发布时间】:2019-11-20 17:40:49
【问题描述】:

有人可以向我解释一下task :seed 在做什么吗?特别是在其中列出了 ensure_review_app、环境等的 []=>%w[] 部分?我知道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

耙文件:

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

我认为 ensure_review_app 可能是一个文件,它是一个 heroku 命令吗?

【问题讨论】:

    标签: ruby-on-rails heroku ruby-on-rails-5 rake


    【解决方案1】:

    这里提到的其他内容是您正在查看的任务的prerequisites。 IE。它们是其他 rake 任务,应该在运行 :seed 任务之前运行。

    它们的格式有点奇怪([] => %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 任务。

    您可以在您发布的较长的 sn-p 中看到 ensure_review_app 任务。它正在做 heroku 的事情,但它只是一个像其他任何任务一样的 rake 任务。

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

    rake -T task_name
    

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

    rake -A -T task_name
    

    【讨论】:

    • 什么是environment?那是耙子任务吗?还是只是输出环境?
    • 这是另一个设置 rails 环境的 rake 任务。我在解释如何列出任务的答案中添加了一些内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 2018-06-21
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    相关资源
    最近更新 更多