summaryrefslogtreecommitdiff
path: root/priv/repo/migrations/20190710125158_add_following_address_from_source_data.exs
blob: a5170d5215e801ccbbd99a4036eb4c545f97e3b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
defmodule Pleroma.Repo.Migrations.AddFollowingAddressFromSourceData do
  use Ecto.Migration
  import Ecto.Query
  alias Pleroma.User

  def change do
    query =
      User.Query.build(%{
        external: true,
        legacy_active: true,
        order_by: :id
      })
      |> select([u], struct(u, [:id, :ap_id, :info]))

    Pleroma.Repo.stream(query)
    |> Enum.each(fn
      %{info: %{source_data: source_data}} = user ->
        Ecto.Changeset.cast(user, %{following_address: source_data["following"]}, [
          :following_address
        ])
        |> Pleroma.Repo.update()
    end)
  end
end