forked from AkkomaGang/akkoma
Add database migrations
* SimplePolicy * quarentine * transparency_exclusions
This commit is contained in:
parent
c0489f9fac
commit
1f52246a02
3 changed files with 162 additions and 0 deletions
|
@ -0,0 +1,40 @@
|
||||||
|
defmodule Pleroma.Repo.Migrations.SimplePolicyStringToTuple do
|
||||||
|
use Ecto.Migration
|
||||||
|
|
||||||
|
alias Pleroma.ConfigDB
|
||||||
|
|
||||||
|
def up, do: ConfigDB.get_by_params(%{group: :pleroma, key: :mrf_simple}) |> update_to_tuples
|
||||||
|
def down, do: ConfigDB.get_by_params(%{group: :pleroma, key: :mrf_simple}) |> update_to_strings
|
||||||
|
|
||||||
|
defp update_to_tuples(%{value: value}) do
|
||||||
|
new_value =
|
||||||
|
value
|
||||||
|
|> Enum.map(fn {k, v} ->
|
||||||
|
{k,
|
||||||
|
Enum.map(v, fn
|
||||||
|
{instance, reason} -> {instance, reason}
|
||||||
|
instance -> {instance, ""}
|
||||||
|
end)}
|
||||||
|
end)
|
||||||
|
|
||||||
|
ConfigDB.update_or_create(%{group: :pleroma, key: :mrf_simple, value: new_value})
|
||||||
|
end
|
||||||
|
|
||||||
|
defp update_to_tuples(nil), do: {:ok, nil}
|
||||||
|
|
||||||
|
defp update_to_strings(%{value: value}) do
|
||||||
|
new_value =
|
||||||
|
value
|
||||||
|
|> Enum.map(fn {k, v} ->
|
||||||
|
{k,
|
||||||
|
Enum.map(v, fn
|
||||||
|
{instance, _} -> instance
|
||||||
|
instance -> instance
|
||||||
|
end)}
|
||||||
|
end)
|
||||||
|
|
||||||
|
ConfigDB.update_or_create(%{group: :pleroma, key: :mrf_simple, value: new_value})
|
||||||
|
end
|
||||||
|
|
||||||
|
defp update_to_strings(nil), do: {:ok, nil}
|
||||||
|
end
|
|
@ -0,0 +1,61 @@
|
||||||
|
defmodule Pleroma.Repo.Migrations.QuarantainedStringToTuple do
|
||||||
|
use Ecto.Migration
|
||||||
|
|
||||||
|
alias Pleroma.ConfigDB
|
||||||
|
|
||||||
|
def up,
|
||||||
|
do:
|
||||||
|
ConfigDB.get_by_params(%{group: :pleroma, key: :instance})
|
||||||
|
|> update_quarantined_instances_to_tuples
|
||||||
|
|
||||||
|
def down,
|
||||||
|
do:
|
||||||
|
ConfigDB.get_by_params(%{group: :pleroma, key: :instance})
|
||||||
|
|> update_quarantined_instances_to_strings
|
||||||
|
|
||||||
|
defp update_quarantined_instances_to_tuples(%{value: settings}) do
|
||||||
|
settings |> List.keyfind(:quarantined_instances, 0) |> update_to_tuples
|
||||||
|
end
|
||||||
|
|
||||||
|
defp update_quarantined_instances_to_tuples(nil), do: {:ok, nil}
|
||||||
|
|
||||||
|
defp update_to_tuples({:quarantined_instances, instance_list}) do
|
||||||
|
new_value =
|
||||||
|
instance_list
|
||||||
|
|> Enum.map(fn
|
||||||
|
{v, r} -> {v, r}
|
||||||
|
v -> {v, ""}
|
||||||
|
end)
|
||||||
|
|
||||||
|
ConfigDB.update_or_create(%{
|
||||||
|
group: :pleroma,
|
||||||
|
key: :instance,
|
||||||
|
value: [quarantined_instances: new_value]
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
defp update_to_tuples(nil), do: {:ok, nil}
|
||||||
|
|
||||||
|
defp update_quarantined_instances_to_strings(%{value: settings}) do
|
||||||
|
settings |> List.keyfind(:quarantined_instances, 0) |> update_to_strings
|
||||||
|
end
|
||||||
|
|
||||||
|
defp update_quarantined_instances_to_strings(nil), do: {:ok, nil}
|
||||||
|
|
||||||
|
defp update_to_strings({:quarantined_instances, instance_list}) do
|
||||||
|
new_value =
|
||||||
|
instance_list
|
||||||
|
|> Enum.map(fn
|
||||||
|
{v, _} -> v
|
||||||
|
v -> v
|
||||||
|
end)
|
||||||
|
|
||||||
|
ConfigDB.update_or_create(%{
|
||||||
|
group: :pleroma,
|
||||||
|
key: :instance,
|
||||||
|
value: [quarantined_instances: new_value]
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
defp update_to_strings(nil), do: {:ok, nil}
|
||||||
|
end
|
|
@ -0,0 +1,61 @@
|
||||||
|
defmodule Pleroma.Repo.Migrations.TransparencyExclusionsStringToTuple do
|
||||||
|
use Ecto.Migration
|
||||||
|
|
||||||
|
alias Pleroma.ConfigDB
|
||||||
|
|
||||||
|
def up,
|
||||||
|
do:
|
||||||
|
ConfigDB.get_by_params(%{group: :pleroma, key: :mrf})
|
||||||
|
|> update_transparency_exclusions_instances_to_tuples
|
||||||
|
|
||||||
|
def down,
|
||||||
|
do:
|
||||||
|
ConfigDB.get_by_params(%{group: :pleroma, key: :mrf})
|
||||||
|
|> update_transparency_exclusions_instances_to_strings
|
||||||
|
|
||||||
|
defp update_transparency_exclusions_instances_to_tuples(%{value: settings}) do
|
||||||
|
settings |> List.keyfind(:transparency_exclusions, 0) |> update_to_tuples
|
||||||
|
end
|
||||||
|
|
||||||
|
defp update_transparency_exclusions_instances_to_tuples(nil), do: {:ok, nil}
|
||||||
|
|
||||||
|
defp update_to_tuples({:transparency_exclusions, instance_list}) do
|
||||||
|
new_value =
|
||||||
|
instance_list
|
||||||
|
|> Enum.map(fn
|
||||||
|
{v, r} -> {v, r}
|
||||||
|
v -> {v, ""}
|
||||||
|
end)
|
||||||
|
|
||||||
|
ConfigDB.update_or_create(%{
|
||||||
|
group: :pleroma,
|
||||||
|
key: :mrf,
|
||||||
|
value: [transparency_exclusions: new_value]
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
defp update_to_tuples(nil), do: {:ok, nil}
|
||||||
|
|
||||||
|
defp update_transparency_exclusions_instances_to_strings(%{value: settings}) do
|
||||||
|
settings |> List.keyfind(:transparency_exclusions, 0) |> update_to_strings
|
||||||
|
end
|
||||||
|
|
||||||
|
defp update_transparency_exclusions_instances_to_strings(nil), do: {:ok, nil}
|
||||||
|
|
||||||
|
defp update_to_strings({:transparency_exclusions, instance_list}) do
|
||||||
|
new_value =
|
||||||
|
instance_list
|
||||||
|
|> Enum.map(fn
|
||||||
|
{v, _} -> v
|
||||||
|
v -> v
|
||||||
|
end)
|
||||||
|
|
||||||
|
ConfigDB.update_or_create(%{
|
||||||
|
group: :pleroma,
|
||||||
|
key: :mrf,
|
||||||
|
value: [transparency_exclusions: new_value]
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
defp update_to_strings(nil), do: {:ok, nil}
|
||||||
|
end
|
Loading…
Reference in a new issue