Fix muted notification migration only working with a schema
Should also improve performance. I tested it on my local DB, but if anyone has a backup of <=1.0 db they can test this on, please do
This commit is contained in:
parent
2411d09215
commit
ee88afb2e2
1 changed files with 1 additions and 12 deletions
|
@ -1,19 +1,8 @@
|
||||||
defmodule Pleroma.Repo.Migrations.CopyMutedToMutedNotifications do
|
defmodule Pleroma.Repo.Migrations.CopyMutedToMutedNotifications do
|
||||||
use Ecto.Migration
|
use Ecto.Migration
|
||||||
import Ecto.Query
|
|
||||||
alias Pleroma.User
|
alias Pleroma.User
|
||||||
|
|
||||||
def change do
|
def change do
|
||||||
query = from(u in "users", where: fragment("not (?->'deactivated' @> 'true')", u.info), select: %{info: u.info}, where: u.local == true, order_by: u.id)
|
execute("update users set info = jsonb_set(info, '{muted_notifications}', info->'mutes', true) where local = true")
|
||||||
Pleroma.Repo.stream(query)
|
|
||||||
|> Enum.each(fn
|
|
||||||
%{info: %{mutes: mutes} = info} = user ->
|
|
||||||
info_cng =
|
|
||||||
Ecto.Changeset.cast(info, %{muted_notifications: mutes}, [:muted_notifications])
|
|
||||||
|
|
||||||
Ecto.Changeset.change(user)
|
|
||||||
|> Ecto.Changeset.put_embed(:info, info_cng)
|
|
||||||
|> Pleroma.Repo.update()
|
|
||||||
end)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue