1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.Repo.Migrations.MrfConfigMoveFromInstanceNamespace do
10 @old_keys [:rewrite_policy, :mrf_transparency, :mrf_transparency_exclusions]
12 config = ConfigDB.get_by_params(%{group: :pleroma, key: :instance})
17 |> Keyword.take(@old_keys)
19 {:rewrite_policy, policies} -> {:policies, policies}
20 {:mrf_transparency, transparency} -> {:transparency, transparency}
21 {:mrf_transparency_exclusions, exclusions} -> {:transparency_exclusions, exclusions}
27 |> ConfigDB.changeset(%{group: :pleroma, key: :mrf, value: mrf})
28 |> Pleroma.Repo.insert()
30 new_instance = Keyword.drop(config.value, @old_keys)
32 if new_instance != [] do
35 |> ConfigDB.changeset(%{value: new_instance})
36 |> Pleroma.Repo.update()
38 {:ok, _} = ConfigDB.delete(config)