23 lines
548 B
Elixir
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
|