akkoma/priv/repo/migrations/20200831142509_chat_constraints.exs
lain 0b621a834a Chats: Add cascading delete on both referenced users.
Also remove the now-superfluous join in the chat controller,
which was only used to filter out these cases.
2020-08-31 16:48:17 +02:00

23 lines
548 B
Elixir

defmodule Pleroma.Repo.Migrations.ChatConstraints do
use Ecto.Migration
def change do
remove_orphans = """
delete from chats where not exists(select id from users where ap_id = chats.recipient);
"""
execute(remove_orphans)
drop(constraint(:chats, "chats_user_id_fkey"))
alter table(:chats) do
modify(:user_id, references(:users, type: :uuid, on_delete: :delete_all))
modify(
:recipient,
references(:users, column: :ap_id, type: :string, on_delete: :delete_all)
)
end
end
end