summaryrefslogtreecommitdiff
path: root/priv/repo/migrations/20200527163635_delete_notifications_from_invisible_users.exs
blob: ac213c78efffc94705e22ef05edd207459358cc8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.Repo.Migrations.DeleteNotificationsFromInvisibleUsers do
  use Ecto.Migration

  import Ecto.Query
  alias Pleroma.Repo

  def up do
    Pleroma.Notification
    |> join(:inner, [n], activity in assoc(n, :activity))
    |> where(
      [n, a],
      fragment("? in (SELECT ap_id FROM users WHERE invisible = true)", a.actor)
    )
    |> Repo.delete_all()
  end

  def down, do: :ok
end