mobilizon/priv/repo/migrations/20210217164549_add_member_since_to_members.exs

33 lines
772 B
Elixir
Raw Normal View History

defmodule Mobilizon.Storage.Repo.Migrations.AddMemberSinceToMembers do
use Ecto.Migration
def up do
alter table(:members) do
add(:member_since, :utc_datetime)
end
flush()
%Postgrex.Result{rows: rows} =
Ecto.Adapters.SQL.query!(
Mobilizon.Storage.Repo,
"SELECT id, role FROM members"
)
Enum.each(rows, fn [id, role] ->
if role in ["member", "moderator", "administrator", "creator"] do
Ecto.Adapters.SQL.query!(
Mobilizon.Storage.Repo,
"UPDATE members SET member_since = '#{DateTime.to_iso8601(DateTime.utc_now())}' WHERE id = '#{Ecto.UUID.cast!(id)}'"
)
end
end)
end
def down do
alter table(:members) do
remove(:member_since)
end
end
end