如何使用phoenix stack运行Elixir文件
我是长生不老药生态系统的新手。我的Elixir/Phoenix应用程序中有一个导入脚本,当我尝试从命令行运行它时,它不起作用,因为Phoenix堆栈没有用我的命令加载 以下是我试图运行的内容:如何使用phoenix stack运行Elixir文件,elixir,phoenix-framework,Elixir,Phoenix Framework,我是长生不老药生态系统的新手。我的Elixir/Phoenix应用程序中有一个导入脚本,当我尝试从命令行运行它时,它不起作用,因为Phoenix堆栈没有用我的命令加载 以下是我试图运行的内容: elixir lib/mix/tasks/import/users.ex 我得到:**(CompileError)lib/mix/tasks/import/users.ex:7:module mix.exto未加载且找不到 有没有办法告诉我的命令加载堆栈 这是我的users.ex import defm
elixir lib/mix/tasks/import/users.ex
我得到:**(CompileError)lib/mix/tasks/import/users.ex:7:module mix.exto未加载且找不到
有没有办法告诉我的命令加载堆栈
这是我的users.ex import
defmodule Mix.Tasks.Import.Users do
@moduledoc """
Import predefined users.
"""
use Mix.Task
import Mix.Ecto
alias App.Shield.Resources.User
@shortdoc "Import users"
def run(args) do
repos = parse_repo(args)
Enum.each repos, fn repo ->
Mix.shell.info "=== User Import (CSV) ==="
ensure_repo(repo, args)
ensure_started(repo, [])
static_path = Application.app_dir(:corsair, "priv/static")
File.stream!("#{static_path}/User.csv")
|> CSV.decode(headers: true)
|> Task.async_stream(Mix.Tasks.Import.Users, :process_csv_row, [repo])
|> Enum.to_list()
end
end
def process_csv_row(row, repo) do
user = %{
first_name: row["first_name"],
last_name: row["last_name"],
email: row["email"]
}
changeset = User.registration_on_subdomain_changeset(%User{}, user)
case repo.insert(changeset) do
{:ok, user} ->
Bunt.puts [:color83, "User #{user.first_name} #{user.last_name} created"]
{:error, changeset} ->
Bunt.puts [:color197, "Problem with #{row["email"]}"]
IO.inspect changeset.errors
end
end
end
我终于在文档中找到了如何运行自定义任务。 就我而言,这是最重要的
混合导入。用户
我尝试了混合任务。导入。用户,但任务关键字不是必需的
这是文件以防万一