X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fmix%2Ftasks%2Fpleroma%2Fdatabase.ex;h=4ddace9c97f58a0006435ff504903f3e3bcdc348;hb=1b49b8efe57256b3f64b4b7e8a1de805ab030814;hp=f903cf75bdc18fac39119cd44a0761f9ed2a8f88;hpb=367f0c31c3c15f75aed1d3ba66914e4197c19596;p=akkoma
diff --git a/lib/mix/tasks/pleroma/database.ex b/lib/mix/tasks/pleroma/database.ex
index f903cf75b..4ddace9c9 100644
--- a/lib/mix/tasks/pleroma/database.ex
+++ b/lib/mix/tasks/pleroma/database.ex
@@ -1,10 +1,9 @@
# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors
+# Copyright © 2017-2021 Pleroma Authors
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Mix.Tasks.Pleroma.Database do
alias Pleroma.Conversation
- alias Pleroma.Hashtag
alias Pleroma.Maintenance
alias Pleroma.Object
alias Pleroma.Repo
@@ -132,69 +131,6 @@ defmodule Mix.Tasks.Pleroma.Database do
|> Stream.run()
end
- def run(["transfer_hashtags"]) do
- import Ecto.Query
-
- start_pleroma()
-
- Logger.info("Starting transferring object embedded hashtags to `hashtags` table...")
-
- from(
- object in Object,
- left_join: hashtag in assoc(object, :hashtags),
- where: is_nil(hashtag.id),
- where: fragment("(?)->>'tag' != '[]'", object.data),
- select: %{
- id: object.id,
- tag: fragment("(?)->>'tag'", object.data)
- }
- )
- |> Repo.chunk_stream(100, :batches, timeout: :infinity)
- |> Stream.each(fn objects ->
- Logger.info("Processing #{length(objects)} objects starting from id #{hd(objects).id}...")
-
- Enum.map(
- objects,
- fn object ->
- hashtags =
- object.tag
- |> Jason.decode!()
- |> Enum.filter(&is_bitstring(&1))
-
- Repo.transaction(fn ->
- with {:ok, hashtag_records} <- Hashtag.get_or_create_by_names(hashtags) do
- for hashtag_record <- hashtag_records do
- with {:ok, _} <-
- Repo.query(
- "insert into hashtags_objects(hashtag_id, object_id) values ($1, $2);",
- [hashtag_record.id, object.id]
- ) do
- :noop
- else
- {:error, e} ->
- error =
- "ERROR: could not link object #{object.id} and hashtag " <>
- "#{hashtag_record.id}: #{inspect(e)}"
-
- Logger.error(error)
- Repo.rollback(error)
- end
- end
- else
- e ->
- error = "ERROR: could not create hashtags for object #{object.id}: #{inspect(e)}"
- Logger.error(error)
- Repo.rollback(error)
- end
- end)
- end
- )
- end)
- |> Stream.run()
-
- Logger.info("Done transferring hashtags. Please check logs to ensure no errors.")
- end
-
def run(["vacuum", args]) do
start_pleroma()