X-Git-Url: https://git.squeep.com/?a=blobdiff_plain;f=priv%2Frepo%2Fmigrations%2F20190414125034_migrate_old_bookmarks.exs;h=c618ea3817dae9890a51fd04200e55df8a0c7796;hb=3687788cf2ab91f6f40f76f9a82c448c477b1fec;hp=134b7c6f769285e08d0dd724e0b87e003a0b2042;hpb=6ad8ddfd290f0239956874ccc9dc181167e84647;p=akkoma diff --git a/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs b/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs index 134b7c6f7..c618ea381 100644 --- a/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs +++ b/priv/repo/migrations/20190414125034_migrate_old_bookmarks.exs @@ -6,19 +6,23 @@ defmodule Pleroma.Repo.Migrations.MigrateOldBookmarks do alias Pleroma.User alias Pleroma.Repo - def change do + def up do query = - from(u in User, + from(u in "users", where: u.local == true, - where: fragment("array_length(bookmarks, 1)") > 0, - select: %{id: u.id, bookmarks: fragment("bookmarks")} + where: fragment("array_length(?, 1)", u.bookmarks) > 0, + select: %{id: u.id, bookmarks: u.bookmarks} ) Repo.stream(query) |> Enum.each(fn %{id: user_id, bookmarks: bookmarks} -> Enum.each(bookmarks, fn ap_id -> - activity = Activity.get_create_by_object_ap_id(ap_id) - unless is_nil(activity), do: {:ok, _} = Bookmark.create(user_id, activity.id) + activity = + ap_id + |> Activity.create_by_object_ap_id() + |> Repo.one() + + unless is_nil(activity), do: {:ok, _} = Bookmark.create(user_id, activity.id) end) end) @@ -26,4 +30,10 @@ defmodule Pleroma.Repo.Migrations.MigrateOldBookmarks do remove(:bookmarks) end end + + def down do + alter table(:users) do + add(:bookmarks, {:array, :string}, null: false, default: []) + end + end end