pleroma/priv/repo/migrations/20200528160439_users_update_notification_settings.exs

44 lines
1.5 KiB
Elixir

defmodule Pleroma.Repo.Migrations.UsersUpdateNotificationSettings do
use Ecto.Migration
def up do
execute(
"UPDATE users SET notification_settings = notification_settings - 'followers' || jsonb_build_object('from_followers', notification_settings->'followers')
where notification_settings ? 'followers'
and local"
)
execute(
"UPDATE users SET notification_settings = notification_settings - 'follows' || jsonb_build_object('from_following', notification_settings->'follows')
where notification_settings ? 'follows'
and local"
)
execute(
"UPDATE users SET notification_settings = notification_settings - 'non_followers' || jsonb_build_object('from_strangers', notification_settings->'non_followers')
where notification_settings ? 'non_followers'
and local"
)
end
def down do
execute(
"UPDATE users SET notification_settings = notification_settings - 'from_followers' || jsonb_build_object('followers', notification_settings->'from_followers')
where notification_settings ? 'from_followers'
and local"
)
execute(
"UPDATE users SET notification_settings = notification_settings - 'from_following' || jsonb_build_object('follows', notification_settings->'from_following')
where notification_settings ? 'from_following'
and local"
)
execute(
"UPDATE users SET notification_settings = notification_settings - 'from_strangers' || jsonb_build_object('non_follows', notification_settings->'from_strangers')
where notification_settings ? 'from_strangers'
and local"
)
end
end