From: William Pitcock Date: Wed, 29 Aug 2018 08:43:24 +0000 (+0000) Subject: migrations: add migration to fill in recipients_to/recipients_cc fields X-Git-Url: https://git.squeep.com/?a=commitdiff_plain;h=40ea07cd2fff2477055499edbb439df18c4c1aef;p=akkoma migrations: add migration to fill in recipients_to/recipients_cc fields --- diff --git a/priv/repo/migrations/20180829082743_fill_recipients_to_and_cc_fields_in_activities.exs b/priv/repo/migrations/20180829082743_fill_recipients_to_and_cc_fields_in_activities.exs new file mode 100644 index 000000000..92ac39b94 --- /dev/null +++ b/priv/repo/migrations/20180829082743_fill_recipients_to_and_cc_fields_in_activities.exs @@ -0,0 +1,25 @@ +defmodule Pleroma.Repo.Migrations.FillRecipientsToAndCcFieldsInActivities do + use Ecto.Migration + alias Pleroma.{Repo, Activity} + + def up do + max = Repo.aggregate(Activity, :max, :id) + if max do + IO.puts("#{max} activities") + chunks = 0..(round(max / 10_000)) + + Enum.each(chunks, fn (i) -> + min = i * 10_000 + max = min + 10_000 + execute(""" + update activities set recipients_to = array(select jsonb_array_elements_text(data->'to')) where id > #{min} and id <= #{max} and jsonb_typeof(data->'to') = 'array'; + """) + |> IO.inspect + execute(""" + update activities set recipients_cc = array(select jsonb_array_elements_text(data->'cc')) where id > #{min} and id <= #{max} and jsonb_typeof(data->'cc') = 'array'; + """) + |> IO.inspect + end) + end + end +end