Split alters rather than work with indexes

This commit is contained in:
Roman Chvanikov 2019-07-03 14:56:02 +03:00
parent 291d95dcc3
commit efefee8241

View file

@ -1,22 +1,28 @@
defmodule Pleroma.Repo.Migrations.CaseInsensivtivity do
use Ecto.Migration
# Two-steps alters are intentional.
# When alter of 2 columns is done in a single operation,
# inconsistent failures happen because of index on `email` column.
def up do
execute("create extension if not exists citext")
drop_if_exists(index(:users, [:email]))
alter table(:users) do
modify(:email, :citext)
modify(:nickname, :citext)
end
create_if_not_exists(index(:users, [:email]))
alter table(:users) do
modify(:nickname, :citext)
end
end
def down do
alter table(:users) do
modify(:email, :string)
end
alter table(:users) do
modify(:nickname, :string)
end