aboutsummaryrefslogtreecommitdiff
path: root/lib/mix/tasks
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mix/tasks')
-rw-r--r--lib/mix/tasks/pleroma/database.ex51
1 files changed, 0 insertions, 51 deletions
diff --git a/lib/mix/tasks/pleroma/database.ex b/lib/mix/tasks/pleroma/database.ex
index a09852503..22151ce08 100644
--- a/lib/mix/tasks/pleroma/database.ex
+++ b/lib/mix/tasks/pleroma/database.ex
@@ -128,57 +128,6 @@ defmodule Mix.Tasks.Pleroma.Database do
|> Stream.run()
end
- def run(["fill_old_hashtags", month_limit]) do
- import Ecto.Query
-
- start_pleroma()
-
- month_limit = String.to_integer(month_limit)
-
- if month_limit < 1 do
- shell_error("Invalid `month_limit` argument, needs to be greater than 1")
- else
- time_limit = DateTime.utc_now() |> Timex.shift(months: -month_limit)
-
- from(
- o in Object,
- where: fragment("(?)->>'hashtags' is null", o.data),
- where: fragment("(?)->>'tag' != '[]'", o.data),
- where: o.inserted_at < ^time_limit,
- select: %{id: o.id, tag: fragment("(?)->>'tag'", o.data)}
- )
- |> Pleroma.Repo.chunk_stream(200, :batches)
- |> Stream.each(fn objects ->
- Repo.transaction(fn ->
- objects_first = objects |> List.first()
- objects_last = objects |> List.last()
-
- Logger.info(
- "fill_old_hashtags: #{objects_first.id} (#{objects_first.inserted_at}) -- #{
- objects_last.id
- } (#{objects_last.inserted_at})"
- )
-
- objects
- |> Enum.map(fn object ->
- tags =
- object.tag
- |> Jason.decode!()
- |> Enum.filter(&is_bitstring(&1))
-
- Object
- |> where([o], o.id == ^object.id)
- |> update([o],
- set: [data: fragment("safe_jsonb_set(?, '{hashtags}', ?, true)", o.data, ^tags)]
- )
- |> Repo.update_all([], timeout: :infinity)
- end)
- end)
- end)
- |> Stream.run()
- end
- end
-
def run(["vacuum", args]) do
start_pleroma()