33 lines
700 B
Elixir
33 lines
700 B
Elixir
defmodule Pleroma.Repo.Migrations.PublisherJobChange do
|
|
use Ecto.Migration
|
|
|
|
alias Pleroma.Activity
|
|
alias Pleroma.Repo
|
|
import Ecto.Query
|
|
|
|
def up do
|
|
query =
|
|
from(j in Oban.Job,
|
|
where: j.worker == "Pleroma.Workers.PublisherWorker",
|
|
where: j.state in ["available", "retryable"]
|
|
)
|
|
|
|
jobs = Repo.all(query)
|
|
|
|
Enum.each(jobs, fn job ->
|
|
args = job.args
|
|
|
|
case Activity.get_by_ap_id(args["id"]) do
|
|
nil ->
|
|
:ok
|
|
|
|
%Activity{id: activity_id} ->
|
|
updated_args = Map.put(args, "activity_id", activity_id)
|
|
|
|
Pleroma.Workers.PublisherWorker.new(updated_args)
|
|
|> Oban.insert()
|
|
end
|
|
end)
|
|
end
|
|
end
|