26 lines
464 B
Elixir
26 lines
464 B
Elixir
defmodule Slax.Repo.Migrations.AlterUsersAddUsername do
|
|
use Ecto.Migration
|
|
|
|
def change do
|
|
alter table(:users) do
|
|
add :username, :citext
|
|
end
|
|
|
|
query = """
|
|
update
|
|
users
|
|
set
|
|
username = initcap(substring(email from '^[^@]+'))
|
|
;
|
|
"""
|
|
|
|
execute query, ""
|
|
|
|
alter table(:users) do
|
|
modify :username, :citext, null: false, from: {:citext, null: true}
|
|
end
|
|
|
|
create unique_index(:users, :username)
|
|
end
|
|
end
|