Packages
pow
1.0.13
1.0.39
1.0.38
1.0.37
1.0.36
1.0.35
1.0.34
1.0.33
1.0.32
1.0.31
1.0.30
1.0.29
1.0.28
1.0.27
1.0.26
1.0.25
1.0.24
1.0.23
1.0.22
1.0.21
1.0.20
1.0.19
1.0.18
1.0.17
1.0.16
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
1.0.0-rc.4
1.0.0-rc.3
1.0.0-rc.2
1.0.0-rc.1
1.0.0-rc.0
0.1.0-rc.1
0.1.0-alpha.8
0.1.0-alpha.7
retired
0.1.0-alpha.6
0.1.0-alpha.5
0.1.0-alpha.4
0.1.0-alpha.3
0.1.0-alpha.2
0.1.0-alpha.1
0.1.0-alpha
Robust user authentication solution
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
lib/mix/tasks/ecto/pow.ecto.gen.migration.ex
defmodule Mix.Tasks.Pow.Ecto.Gen.Migration do
@shortdoc "Generates user migration file"
@moduledoc """
Generates a user migration file.
mix pow.ecto.gen.migration -r MyApp.Repo
mix pow.ecto.gen.migration -r MyApp.Repo Accounts.Organization organizations
This generator will add a migration file in `priv/repo/migrations` for the
`users` table
## Arguments
* `-r`, `--repo` - the repo module
* `--binary-id` - use binary id for primary key
"""
use Mix.Task
alias Pow.Ecto.Schema.Migration, as: SchemaMigration
alias Mix.{Ecto, Pow, Pow.Ecto.Migration}
@switches [binary_id: :boolean]
@default_opts [binary_id: false]
@mix_task "pow.ecto.gen.migration"
@impl true
def run(args) do
Pow.no_umbrella!(@mix_task)
Pow.ensure_ecto!(@mix_task, args)
args
|> Pow.parse_options(@switches, @default_opts)
|> parse()
|> create_migration_files(args)
end
defp parse({config, parsed, _invalid}) do
parsed
|> Pow.validate_schema_args!(@mix_task)
|> Map.merge(config)
end
defp create_migration_files(config, args) do
args
|> Ecto.parse_repo()
|> Enum.map(&Ecto.ensure_repo(&1, args))
|> Enum.map(&Map.put(config, :repo, &1))
|> Enum.each(&create_migration_files/1)
end
defp create_migration_files(%{repo: repo, binary_id: binary_id, schema_plural: schema_plural}) do
context_base = Pow.app_base(Pow.otp_app())
schema = SchemaMigration.new(context_base, schema_plural, repo: repo, binary_id: binary_id)
content = SchemaMigration.gen(schema)
Migration.create_migration_file(repo, schema.migration_name, content)
end
end