From d8dd945a0319692b05370f16f289d8a231217ee6 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 11 May 2020 21:52:47 +0200 Subject: [PATCH 1/3] Markers migration: Fix migration for very large list of markers --- .../migrations/20200415181818_update_markers.exs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/priv/repo/migrations/20200415181818_update_markers.exs b/priv/repo/migrations/20200415181818_update_markers.exs index 976363565..b7c611333 100644 --- a/priv/repo/migrations/20200415181818_update_markers.exs +++ b/priv/repo/migrations/20200415181818_update_markers.exs @@ -32,9 +32,13 @@ defmodule Pleroma.Repo.Migrations.UpdateMarkers do |> Map.put_new(:updated_at, now) end) - Repo.insert_all("markers", markers_attrs, - on_conflict: {:replace, [:last_read_id]}, - conflict_target: [:user_id, :timeline] - ) + markers_attrs + |> Enum.chunk(1000) + |> Enum.each(fn marker_attrs -> + Repo.insert_all("markers", markers_attrs, + on_conflict: {:replace, [:last_read_id]}, + conflict_target: [:user_id, :timeline] + ) + end) end end From f71376e30ed34b1fa8a7997dd6f1ea0ae76ed5dd Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 11 May 2020 22:00:01 +0200 Subject: [PATCH 2/3] Migration: Enum.chunk is deprecated. --- priv/repo/migrations/20200415181818_update_markers.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/priv/repo/migrations/20200415181818_update_markers.exs b/priv/repo/migrations/20200415181818_update_markers.exs index b7c611333..d85bd04e0 100644 --- a/priv/repo/migrations/20200415181818_update_markers.exs +++ b/priv/repo/migrations/20200415181818_update_markers.exs @@ -33,7 +33,7 @@ defmodule Pleroma.Repo.Migrations.UpdateMarkers do end) markers_attrs - |> Enum.chunk(1000) + |> Enum.chunk_every(1000) |> Enum.each(fn marker_attrs -> Repo.insert_all("markers", markers_attrs, on_conflict: {:replace, [:last_read_id]}, From f6aa0b4a0792e7c69af6e7008a2ba354ca26adf4 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 11 May 2020 22:03:29 +0200 Subject: [PATCH 3/3] Migration: Fix typo --- priv/repo/migrations/20200415181818_update_markers.exs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/priv/repo/migrations/20200415181818_update_markers.exs b/priv/repo/migrations/20200415181818_update_markers.exs index d85bd04e0..bb9d8e860 100644 --- a/priv/repo/migrations/20200415181818_update_markers.exs +++ b/priv/repo/migrations/20200415181818_update_markers.exs @@ -34,8 +34,8 @@ defmodule Pleroma.Repo.Migrations.UpdateMarkers do markers_attrs |> Enum.chunk_every(1000) - |> Enum.each(fn marker_attrs -> - Repo.insert_all("markers", markers_attrs, + |> Enum.each(fn markers_attrs_chunked -> + Repo.insert_all("markers", markers_attrs_chunked, on_conflict: {:replace, [:last_read_id]}, conflict_target: [:user_id, :timeline] )