Packages

Potionx project generator. Provides a `mix potionx.new` task to bootstrap a new Elixir application with Phoenix, Absinthe, Pow and Vue dependencies.

Current section

Files

Jump to
potionx_new templates potionx app_name release.ex
Raw

templates/potionx/app_name/release.ex

defmodule <%= @app_module %>.Release do
@app :<%= @app_name %>
alias <%= @app_module %>.Repo
alias <%= @app_module %>.Users.User
def migrate do
load_app()
for repo <- repos() do
{:ok, _, _} = Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :up, all: true))
end
end
def rollback(repo, version) do
load_app()
{:ok, _, _} = Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :down, to: version))
end
defp repos do
Application.fetch_env!(@app, :ecto_repos)
end
def seed do
Repo.get_by(User, [email: <%= @email %>])
|> case do
nil ->
Repo.insert! %User{
email: <%= @email %>,
roles: [:admin]
}
_ -> :ok
end
end
defp load_app do
Application.load(@app)
end
end