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
|