akkoma/priv/repo/migrations/20200323122421_mrf_config_move_from_instance_namespace.exs

40 lines
1.1 KiB
Elixir
Raw Normal View History

defmodule Pleroma.Repo.Migrations.MrfConfigMoveFromInstanceNamespace do
use Ecto.Migration
alias Pleroma.ConfigDB
@old_keys [:rewrite_policy, :mrf_transparency, :mrf_transparency_exclusions]
def change do
2020-06-23 17:18:27 +00:00
config = ConfigDB.get_by_params(%{group: :pleroma, key: :instance})
if config do
mrf =
2020-06-23 17:18:27 +00:00
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, _} =
2020-06-23 17:18:27 +00:00
%ConfigDB{}
|> ConfigDB.changeset(%{group: :pleroma, key: :mrf, value: mrf})
|> Pleroma.Repo.insert()
2020-06-23 17:18:27 +00:00
new_instance = Keyword.drop(config.value, @old_keys)
if new_instance != [] do
2020-06-23 17:18:27 +00:00
{:ok, _} =
config
|> ConfigDB.changeset(%{value: new_instance})
|> Pleroma.Repo.update()
else
{:ok, _} = ConfigDB.delete(config)
end
end
end
end
end