Page MenuHomePhorge

No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None
diff --git a/priv/repo/migrations/20200415181818_update_markers.exs b/priv/repo/migrations/20200415181818_update_markers.exs
index 976363565..bd4cb316e 100644
--- a/priv/repo/migrations/20200415181818_update_markers.exs
+++ b/priv/repo/migrations/20200415181818_update_markers.exs
@@ -1,40 +1,43 @@
defmodule Pleroma.Repo.Migrations.UpdateMarkers do
use Ecto.Migration
import Ecto.Query
alias Pleroma.Repo
def up do
update_markers()
end
def down do
:ok
end
defp update_markers do
now = NaiveDateTime.utc_now()
markers_attrs =
from(q in "notifications",
select: %{
timeline: "notifications",
user_id: q.user_id,
last_read_id:
type(fragment("MAX( CASE WHEN seen = true THEN id ELSE null END )"), :string)
},
group_by: [q.user_id]
)
- |> Repo.all()
- |> Enum.map(fn %{last_read_id: last_read_id} = attrs ->
- attrs
- |> Map.put(:last_read_id, last_read_id || "")
- |> Map.put_new(:inserted_at, now)
- |> Map.put_new(:updated_at, now)
+ |> Enum.chunk_every(10_000)
+ |> Enum.each(fn ->
+ Repo.all()
+ |> Enum.map(fn %{last_read_id: last_read_id} = attrs ->
+ attrs
+ |> Map.put(:last_read_id, last_read_id || "")
+ |> Map.put_new(:inserted_at, now)
+ |> Map.put_new(:updated_at, now)
+ end)
end)
Repo.insert_all("markers", markers_attrs,
on_conflict: {:replace, [:last_read_id]},
conflict_target: [:user_id, :timeline]
)
end
end

File Metadata

Mime Type
text/x-diff
Expires
Fri, Aug 28, 3:45 PM (11 h, 59 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1736490
Default Alt Text
(1 KB)

Event Timeline