Migrations: Make them not fail for old databases

This commit is contained in:
lain 2020-02-20 16:44:31 +01:00
parent 3b78695c98
commit 2d5cf0f8cd
3 changed files with 13 additions and 3 deletions

View file

@ -17,7 +17,11 @@ def up do
Repo.stream(query) Repo.stream(query)
|> Enum.each(fn %{id: user_id, bookmarks: bookmarks} -> |> Enum.each(fn %{id: user_id, bookmarks: bookmarks} ->
Enum.each(bookmarks, fn ap_id -> Enum.each(bookmarks, fn ap_id ->
activity = Activity.get_create_by_object_ap_id(ap_id) activity =
ap_id
|> Activity.create_by_object_ap_id()
|> Repo.one()
unless is_nil(activity), do: {:ok, _} = Bookmark.create(user_id, activity.id) unless is_nil(activity), do: {:ok, _} = Bookmark.create(user_id, activity.id)
end) end)
end) end)

View file

@ -1,7 +1,8 @@
defmodule Pleroma.Repo.Migrations.AddFollowingAddressFromSourceData do defmodule Pleroma.Repo.Migrations.AddFollowingAddressFromSourceData do
use Ecto.Migration
import Ecto.Query
alias Pleroma.User alias Pleroma.User
import Ecto.Query
require Logger
use Ecto.Migration
def change do def change do
query = query =
@ -19,6 +20,9 @@ def change do
:following_address :following_address
]) ])
|> Pleroma.Repo.update() |> Pleroma.Repo.update()
user ->
Logger.warn("User #{user.id} / #{user.nickname} does not seem to have source_data")
end) end)
end end
end end

View file

@ -2,6 +2,8 @@ defmodule Pleroma.Repo.Migrations.CopyMutedToMutedNotifications do
use Ecto.Migration use Ecto.Migration
def change do def change do
execute("update users set info = '{}' where info is null")
execute( execute(
"update users set info = safe_jsonb_set(info, '{muted_notifications}', info->'mutes', true) where local = true" "update users set info = safe_jsonb_set(info, '{muted_notifications}', info->'mutes', true) where local = true"
) )