1 defmodule Pleroma.Repo.Migrations.RemoveUnreadConversationCountFromUser do
8 remove_if_exists(:unread_conversation_count, :integer)
13 alter table(:users) do
14 add_if_not_exists(:unread_conversation_count, :integer, default: 0)
18 recalc_unread_conversation_count()
21 defp recalc_unread_conversation_count do
22 participations_subquery =
24 p in "conversation_participations",
25 where: p.read == false,
27 select: %{user_id: p.user_id, unread_conversation_count: count(p.id)}
32 join: p in subquery(participations_subquery),
33 on: p.user_id == u.id,
34 update: [set: [unread_conversation_count: p.unread_conversation_count]]
36 |> Repo.update_all([])