forked from AkkomaGang/akkoma
28 lines
731 B
Elixir
28 lines
731 B
Elixir
defmodule Pleroma.Repo.Migrations.AddFollowingAddressFromSourceData do
|
|
alias Pleroma.User
|
|
import Ecto.Query
|
|
require Logger
|
|
use Ecto.Migration
|
|
|
|
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()
|
|
|
|
user ->
|
|
Logger.warn("User #{user.id} / #{user.nickname} does not seem to have source_data")
|
|
end)
|
|
end
|
|
end
|