Ich glaube nicht, dass es jede eingebaute Funktionalität für diese, aber Sie können Mix.Task.run/2
dies zu erreichen, verwenden:
defmodule Mix.Tasks.SeedUsers do
def run(_args) do
IO.puts "started seed_users"
Mix.Task.run "seed_companies"
Mix.Task.run "seed_companies"
IO.puts "completed seed_users"
end
end
defmodule Mix.Tasks.SeedCompanies do
def run(_args) do
IO.puts "started seed_companies"
IO.puts "completed seed_companies"
end
end
Beispiel laufen:
$ mix seed_users
started seed_users
started seed_companies
completed seed_companies
completed seed_users
Beachten Sie, dass Mix.Task.run/2
nicht Führen Sie die Aufgabe aus, wenn sie bereits einmal ausgeführt wurde. Wenn Sie also wie im obigen Beispiel zweimal Mix.Task.run/2
aufrufen, wird sie nur einmal ausgeführt. Wenn Sie eine Aufgabe mehr als einmal ausführen möchten, müssen Sie nach jedem Lauf Mix.Task.reenable/1
aufrufen.
Ich denke, Sie vermissen 'verwenden Mix.Task' in jedem Modul – AbM