pleroma/priv/repo/migrations/20240904142434_assign_app_user.exs
2025-02-23 22:21:44 -05:00

25 lines
563 B
Elixir

defmodule Pleroma.Repo.Migrations.AssignAppUser do
use Ecto.Migration
import Ecto.Query
alias Pleroma.Repo
alias Pleroma.Web.OAuth.App
alias Pleroma.Web.OAuth.Token
def up do
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()
App.maybe_update_owner(token)
end)
|> Stream.run()
end
def down, do: :ok
end