X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fconfig%2Ftransfer_task.ex;h=7c3449b5e0e06ac27f677dcc74dfca0477caa322;hb=d1c7f8e576e31487544b57d67802843b8ef38388;hp=6c5ba1f95ca040107bcf026c904ed6467e530e3d;hpb=15cb1f6804fde19330a3c1f06eb24802c7503be3;p=akkoma diff --git a/lib/pleroma/config/transfer_task.ex b/lib/pleroma/config/transfer_task.ex index 6c5ba1f95..7c3449b5e 100644 --- a/lib/pleroma/config/transfer_task.ex +++ b/lib/pleroma/config/transfer_task.ex @@ -1,5 +1,5 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Config.TransferTask do @@ -42,7 +42,8 @@ defmodule Pleroma.Config.TransferTask do @spec load_and_update_env([ConfigDB.t()]) :: :ok | false def load_and_update_env(deleted \\ [], restart_pleroma? \\ true) do - with true <- Pleroma.Config.get(:configurable_from_database), + with {:configurable, true} <- + {:configurable, Pleroma.Config.get(:configurable_from_database)}, true <- Ecto.Adapters.SQL.table_exists?(Repo, "config"), started_applications <- Application.started_applications() do # We need to restart applications for loaded settings take effect @@ -65,12 +66,15 @@ defmodule Pleroma.Config.TransferTask do if :pleroma in applications do List.delete(applications, :pleroma) ++ [:pleroma] else + Restarter.Pleroma.rebooted() applications end Enum.each(applications, &restart(started_applications, &1, Pleroma.Config.get(:env))) :ok + else + {:configurable, false} -> Restarter.Pleroma.rebooted() end end @@ -79,7 +83,7 @@ defmodule Pleroma.Config.TransferTask do key = ConfigDB.from_string(setting.key) group = ConfigDB.from_string(setting.group) - default = Pleroma.Config.Holder.config(group, key) + default = Pleroma.Config.Holder.default_config(group, key) value = ConfigDB.from_binary(setting.value) merged_value = @@ -146,9 +150,7 @@ defmodule Pleroma.Config.TransferTask do defp update_env(group, key, nil), do: Application.delete_env(group, key) defp update_env(group, key, value), do: Application.put_env(group, key, value) - defp restart(_, :pleroma, :test), do: Logger.warn("pleroma restarted") - - defp restart(_, :pleroma, _), do: send(Restarter.Pleroma, :after_boot) + defp restart(_, :pleroma, env), do: Restarter.Pleroma.restart_after_boot(env) defp restart(started_applications, app, _) do with {^app, _, _} <- List.keyfind(started_applications, app, 0),