2024-09-04 10:40:37 -04:00
|
|
|
defmodule Pleroma.Repo.Migrations.AssignAppUser do
|
|
|
|
|
use Ecto.Migration
|
|
|
|
|
|
2025-02-23 21:12:08 -05:00
|
|
|
import Ecto.Query
|
|
|
|
|
|
2024-09-04 10:40:37 -04:00
|
|
|
alias Pleroma.Repo
|
|
|
|
|
alias Pleroma.Web.OAuth.App
|
|
|
|
|
alias Pleroma.Web.OAuth.Token
|
|
|
|
|
|
|
|
|
|
def up do
|
2025-02-23 21:12:08 -05:00
|
|
|
Token
|
|
|
|
|
|> where([t], not is_nil(t.user_id))
|
|
|
|
|
|> group_by([t], t.app_id)
|
|
|
|
|
|> select([t], %{app_id: t.app_id, id: min(t.id)})
|
|
|
|
|
|> order_by(asc: :app_id)
|
|
|
|
|
|> Repo.stream()
|
|
|
|
|
|> Stream.each(fn %{id: id} ->
|
|
|
|
|
token = Token.Query.get_by_id(id) |> Repo.one()
|
2024-09-04 10:40:37 -04:00
|
|
|
App.maybe_update_owner(token)
|
|
|
|
|
end)
|
2025-02-23 21:12:08 -05:00
|
|
|
|> Stream.run()
|
2024-09-04 10:40:37 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def down, do: :ok
|
|
|
|
|
end
|