defmodule Pleroma.Repo.Migrations.MrfConfigMoveFromInstanceNamespace do use Ecto.Migration alias Pleroma.ConfigDB @old_keys [:rewrite_policy, :mrf_transparency, :mrf_transparency_exclusions] def change do config = ConfigDB.get_by_params(%{group: :pleroma, key: :instance}) if config do mrf = config.value |> Keyword.take(@old_keys) |> Keyword.new(fn {:rewrite_policy, policies} -> {:policies, policies} {:mrf_transparency, transparency} -> {:transparency, transparency} {:mrf_transparency_exclusions, exclusions} -> {:transparency_exclusions, exclusions} end) if mrf != [] do {:ok, _} = %ConfigDB{} |> ConfigDB.changeset(%{group: :pleroma, key: :mrf, value: mrf}) |> Pleroma.Repo.insert() new_instance = Keyword.drop(config.value, @old_keys) if new_instance != [] do {:ok, _} = config |> ConfigDB.changeset(%{value: new_instance}) |> Pleroma.Repo.update() else {:ok, _} = ConfigDB.delete(config) end end end end end