[英]Rake task what is `[] => %w[ensure_review_app environment, db:seed ]` doing?
有人可以向我解釋以下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 命令嗎?
這里提到的其他內容是您正在查看的任務的先決條件。 即它們是應該在運行:seed
任務之前運行的其他 rake 任務。
它們的格式有點奇怪( [] => %w[...]
),因為任務指定該任務沒有 arguments 。 您可以在 rake 文檔的期望參數和具有先決條件的任務部分看到這一點。
通常,您會直接從任務名稱中看到先決條件,例如:
task seed: %w[ensure_review_app environment db:seed ... ]
當您選擇使用rake review_app:seed
運行該任務時,它將首先運行所有其他先決任務,然后運行review_app:seed
任務。
您可以在您發布的較長代碼段中看到ensure_review_app
任務。 它正在做 heroku 的東西,但它只是一個像其他任何任務一樣的 rake 任務。
您應該能夠使用以下命令列出任何 rake 任務:
rake -T task_name
對於沒有描述的任務,您可能需要使用-A
:
rake -A -T task_name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.