forked from AkkomaGang/akkoma
Fix user upgrading code.
This commit is contained in:
parent
1331a39d39
commit
efd4d04933
1 changed files with 8 additions and 5 deletions
|
@ -209,15 +209,18 @@ def upgrade_user_from_ap_id(ap_id) do
|
||||||
|
|
||||||
# This could potentially take a long time, do it in the background
|
# This could potentially take a long time, do it in the background
|
||||||
Task.start(fn ->
|
Task.start(fn ->
|
||||||
q = from a in Activity,
|
|
||||||
where: ^old_follower_address in a.recipients,
|
|
||||||
update: [set: [recipients: fragment("array_replace(?,?,?)", a.recipients, ^old_follower_address, ^user.follower_address)]]
|
|
||||||
Repo.update_all(q, [])
|
|
||||||
|
|
||||||
q = from u in User,
|
q = from u in User,
|
||||||
where: ^old_follower_address in u.following,
|
where: ^old_follower_address in u.following,
|
||||||
update: [set: [following: fragment("array_replace(?,?,?)", u.following, ^old_follower_address, ^user.follower_address)]]
|
update: [set: [following: fragment("array_replace(?,?,?)", u.following, ^old_follower_address, ^user.follower_address)]]
|
||||||
Repo.update_all(q, [])
|
Repo.update_all(q, [])
|
||||||
|
|
||||||
|
# Only do this for recent activties, don't go through the whole db.
|
||||||
|
since = (Repo.aggregate(Activity, :max, :id) || 0) - 100_000
|
||||||
|
q = from a in Activity,
|
||||||
|
where: ^old_follower_address in a.recipients,
|
||||||
|
where: a.id > ^since,
|
||||||
|
update: [set: [recipients: fragment("array_replace(?,?,?)", a.recipients, ^old_follower_address, ^user.follower_address)]]
|
||||||
|
Repo.update_all(q, [])
|
||||||
end)
|
end)
|
||||||
|
|
||||||
{:ok, user}
|
{:ok, user}
|
||||||
|
|
Loading…
Reference in a new issue