Merge pull request 'Manually define PATH for Arch Linux users in systemd unit' (...
[akkoma] / priv / repo / migrations / 20200323122421_mrf_config_move_from_instance_namespace.exs
1 defmodule Pleroma.Repo.Migrations.MrfConfigMoveFromInstanceNamespace do
2 use Ecto.Migration
3
4 alias Pleroma.ConfigDB
5
6 @old_keys [:rewrite_policy, :mrf_transparency, :mrf_transparency_exclusions]
7 def change do
8 config = ConfigDB.get_by_params(%{group: :pleroma, key: :instance})
9
10 if config do
11 mrf =
12 config.value
13 |> Keyword.take(@old_keys)
14 |> Keyword.new(fn
15 {:rewrite_policy, policies} -> {:policies, policies}
16 {:mrf_transparency, transparency} -> {:transparency, transparency}
17 {:mrf_transparency_exclusions, exclusions} -> {:transparency_exclusions, exclusions}
18 end)
19
20 if mrf != [] do
21 {:ok, _} =
22 %ConfigDB{}
23 |> ConfigDB.changeset(%{group: :pleroma, key: :mrf, value: mrf})
24 |> Pleroma.Repo.insert()
25
26 new_instance = Keyword.drop(config.value, @old_keys)
27
28 if new_instance != [] do
29 {:ok, _} =
30 config
31 |> ConfigDB.changeset(%{value: new_instance})
32 |> Pleroma.Repo.update()
33 else
34 {:ok, _} = ConfigDB.delete(config)
35 end
36 end
37 end
38 end
39 end