mobilizon/priv/repo/migrations/20200817080549_add_published_at_to_entities.exs
Thomas Citharel 156eba0551
Improve member adding and excluding flow
Allow to exclude a member

Send emails to the member when it's excluded

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-08-18 14:37:31 +02:00

66 lines
1.2 KiB
Elixir

defmodule Mobilizon.Storage.Repo.Migrations.AddPublishedAtToEntities do
use Ecto.Migration
alias Mobilizon.Storage.Repo
import Ecto.Query
def up do
alter table(:comments) do
add(:published_at, :utc_datetime)
end
flush()
copy_published_at_from_inserted_at("comments")
alter table(:resource) do
add(:published_at, :utc_datetime)
end
flush()
copy_published_at_from_inserted_at("resource")
alter table(:todo_lists) do
add(:published_at, :utc_datetime)
end
flush()
copy_published_at_from_inserted_at("todo_lists")
alter table(:todos) do
add(:published_at, :utc_datetime)
end
flush()
copy_published_at_from_inserted_at("todos")
end
def down do
alter table(:comments) do
remove(:published_at)
end
alter table(:resource) do
remove(:published_at)
end
alter table(:todo_lists) do
remove(:published_at)
end
alter table(:todos) do
remove(:published_at)
end
end
@spec copy_published_at_from_inserted_at(String.t()) :: any()
defp copy_published_at_from_inserted_at(table_name) do
from(c in table_name,
update: [set: [published_at: c.inserted_at]]
)
|> Repo.update_all([])
end
end