21 lines
592 B
Elixir
21 lines
592 B
Elixir
defmodule Dexi.Repo.Migrations.CreateUsers do
|
|
use Ecto.Migration
|
|
|
|
def change do
|
|
execute "CREATE EXTENSION IF NOT EXISTS citext", "DROP EXTENSION IF EXISTS citext"
|
|
|
|
create table(:users, primary_key: false) do
|
|
add :pubkey, :text, primary_key: true
|
|
add :email, :citext
|
|
add :name, :string
|
|
add :role, :string, null: false, default: "user"
|
|
|
|
timestamps(type: :utc_datetime)
|
|
end
|
|
|
|
create unique_index(:users, [:email], where: "email IS NOT NULL")
|
|
|
|
create constraint(:users, :users_role_must_be_valid, check: "role IN ('user', 'admin')")
|
|
end
|
|
end
|