diff options
Diffstat (limited to 'lib/mix/tasks')
| -rw-r--r-- | lib/mix/tasks/pleroma/database.ex | 11 | 
1 files changed, 10 insertions, 1 deletions
| diff --git a/lib/mix/tasks/pleroma/database.ex b/lib/mix/tasks/pleroma/database.ex index b2dc3d0f3..7d8f00b08 100644 --- a/lib/mix/tasks/pleroma/database.ex +++ b/lib/mix/tasks/pleroma/database.ex @@ -134,14 +134,23 @@ defmodule Mix.Tasks.Pleroma.Database do      Pleroma.Activity      |> join(:left, [a], u in assoc(a, :expiration)) +    |> join(:inner, [a, _u], o in Object, +      on: +        fragment( +          "(?->>'id') = COALESCE((?)->'object'->> 'id', (?)->>'object')", +          o.data, +          a.data, +          a.data +        ) +    )      |> where(local: true)      |> where([a, u], is_nil(u))      |> where([a], fragment("(? ->> 'type'::text) = 'Create'", a.data)) +    |> where([_a, _u, o], fragment("?->>'type' = 'Note'", o.data))      |> Pleroma.RepoStreamer.chunk_stream(100)      |> Stream.each(fn activities ->        Enum.each(activities, fn activity ->          expires_at = Timex.shift(activity.inserted_at, days: days) -          Pleroma.ActivityExpiration.create(activity, expires_at, false)        end)      end) | 
