diff options
| -rw-r--r-- | CHANGELOG.md | 2 | ||||
| -rw-r--r-- | priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs | 20 | 
2 files changed, 16 insertions, 6 deletions
| diff --git a/CHANGELOG.md b/CHANGELOG.md index c538dd9f0..24d6456b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,7 +54,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).  - Deps: Updated Cowboy to 2.6  - Deps: Updated Ecto to 3.0.7  - Don't ship finmoji by default, they can be installed as an emoji pack -- `User.bookmarks` in separate table, added support max_id & since_id for bookmark timeline endpoints. +- Mastodon API: Added support max_id & since_id for bookmark timeline endpoints.  ### Fixed  - Followers counter not being updated when a follower is blocked diff --git a/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs b/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs index 1930fc3cf..c30c302f7 100644 --- a/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs +++ b/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs @@ -1,16 +1,26 @@  defmodule Pleroma.Repo.Migrations.MigrateOldBookmarks do    use Ecto.Migration +  import Ecto.Query    alias Pleroma.Activity    alias Pleroma.Bookmark    alias Pleroma.User    alias Pleroma.Repo    def up do -    Repo.all(User) -    |> Enum.each(fn user -> -      Enum.each(user.old_bookmarks, fn id -> -        activity = Activity.get_create_by_object_ap_id(id) -        {:ok, _} = Bookmark.create(user.id, activity.id) +    query = +      from(u in User, +        where: u.local == true, +        where: fragment("array_length(?, 1)", u.old_bookmarks) > 0, +        select: %{id: u.id, old_bookmarks: u.old_bookmarks} +      ) + +    Repo.transaction(fn -> +      Repo.stream(query) +      |> Enum.each(fn user -> +        Enum.each(user.old_bookmarks, fn id -> +          activity = Activity.get_create_by_object_ap_id(id) +          {:ok, _} = Bookmark.create(user.id, activity.id) +        end)        end)      end)    end | 
