mirror of
https://github.com/philomena-dev/philomena.git
synced 2024-11-24 12:37:58 +01:00
32 lines
941 B
Elixir
32 lines
941 B
Elixir
|
defmodule Philomena.Repo.Migrations.CreateUsersAuthTables do
|
||
|
use Ecto.Migration
|
||
|
|
||
|
def change do
|
||
|
alter table(:users) do
|
||
|
add :confirmed_at, :naive_datetime
|
||
|
end
|
||
|
|
||
|
create table(:user_tokens) do
|
||
|
add :user_id, references(:users, on_delete: :delete_all), null: false
|
||
|
add :token, :binary, null: false
|
||
|
add :context, :string, null: false
|
||
|
add :sent_to, :string
|
||
|
timestamps(inserted_at: :created_at, updated_at: false)
|
||
|
end
|
||
|
|
||
|
execute(&email_citext_up/0, &email_citext_down/0)
|
||
|
create index(:user_tokens, [:user_id])
|
||
|
create unique_index(:user_tokens, [:context, :token])
|
||
|
end
|
||
|
|
||
|
defp email_citext_up() do
|
||
|
repo().query!("create extension citext")
|
||
|
repo().query!("alter table users alter column email type citext")
|
||
|
end
|
||
|
|
||
|
defp email_citext_down() do
|
||
|
repo().query!("alter table users alter column email type character varying")
|
||
|
repo().query!("drop extension citext")
|
||
|
end
|
||
|
end
|