X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fconfig%2Ftransfer_task.ex;h=cf880aa22939efeacd7182a52d2c74d13889d862;hb=1179a135333aa59e7fa4f5b908e1db8257b994f5;hp=0d6ece8073b0f70ca8fb2208e0e3622f60a85fdd;hpb=62ffc00a5d5975a75c905bc728feb71cd15a34d3;p=akkoma diff --git a/lib/pleroma/config/transfer_task.ex b/lib/pleroma/config/transfer_task.ex index 0d6ece807..cf880aa22 100644 --- a/lib/pleroma/config/transfer_task.ex +++ b/lib/pleroma/config/transfer_task.ex @@ -9,9 +9,19 @@ defmodule Pleroma.Config.TransferTask do end def load_and_update_env do - if Pleroma.Config.get([:instance, :dynamic_configuration]) do - Pleroma.Repo.all(Config) - |> Enum.each(&update_env(&1)) + if Pleroma.Config.get([:instance, :dynamic_configuration]) and + Ecto.Adapters.SQL.table_exists?(Pleroma.Repo, "config") do + for_restart = + Pleroma.Repo.all(Config) + |> Enum.map(&update_env(&1)) + + # We need to restart applications for loaded settings take effect + for_restart + |> Enum.reject(&(&1 in [:pleroma, :ok])) + |> Enum.each(fn app -> + Application.stop(app) + :ok = Application.start(app) + end) end end @@ -24,11 +34,15 @@ defmodule Pleroma.Config.TransferTask do setting.key end + group = String.to_existing_atom(setting.group) + Application.put_env( - :pleroma, + group, String.to_existing_atom(key), Config.from_binary(setting.value) ) + + group rescue e -> require Logger