migrating task refactor
This commit is contained in:
parent
c66044b923
commit
b8607c151c
|
@ -28,6 +28,14 @@ def run(["migrate_to_db"]) do
|
||||||
|> Enum.reject(fn {k, _v} -> k in [Pleroma.Repo, :env] end)
|
|> Enum.reject(fn {k, _v} -> k in [Pleroma.Repo, :env] end)
|
||||||
|> Enum.each(fn {k, v} ->
|
|> Enum.each(fn {k, v} ->
|
||||||
key = to_string(k) |> String.replace("Elixir.", "")
|
key = to_string(k) |> String.replace("Elixir.", "")
|
||||||
|
|
||||||
|
key =
|
||||||
|
if String.starts_with?(key, "Pleroma.") do
|
||||||
|
key
|
||||||
|
else
|
||||||
|
":" <> key
|
||||||
|
end
|
||||||
|
|
||||||
{:ok, _} = Config.update_or_create(%{group: "pleroma", key: key, value: v})
|
{:ok, _} = Config.update_or_create(%{group: "pleroma", key: key, value: v})
|
||||||
Mix.shell().info("#{key} is migrated.")
|
Mix.shell().info("#{key} is migrated.")
|
||||||
end)
|
end)
|
||||||
|
@ -53,17 +61,9 @@ def run(["migrate_from_db", env, delete?]) do
|
||||||
|
|
||||||
Repo.all(Config)
|
Repo.all(Config)
|
||||||
|> Enum.each(fn config ->
|
|> Enum.each(fn config ->
|
||||||
mark =
|
|
||||||
if String.starts_with?(config.key, "Pleroma.") or
|
|
||||||
String.starts_with?(config.key, "Ueberauth"),
|
|
||||||
do: ",",
|
|
||||||
else: ":"
|
|
||||||
|
|
||||||
key = String.trim_leading(config.key, ":")
|
|
||||||
|
|
||||||
IO.write(
|
IO.write(
|
||||||
file,
|
file,
|
||||||
"config :#{config.group}, #{key}#{mark} #{inspect(Config.from_binary(config.value))}\r\n"
|
"config :#{config.group}, #{config.key}, #{inspect(Config.from_binary(config.value))}\r\n\r\n"
|
||||||
)
|
)
|
||||||
|
|
||||||
if delete? do
|
if delete? do
|
||||||
|
|
|
@ -34,8 +34,8 @@ test "settings are migrated to db" do
|
||||||
|
|
||||||
Mix.Tasks.Pleroma.Config.run(["migrate_to_db"])
|
Mix.Tasks.Pleroma.Config.run(["migrate_to_db"])
|
||||||
|
|
||||||
first_db = Config.get_by_params(%{group: "pleroma", key: "first_setting"})
|
first_db = Config.get_by_params(%{group: "pleroma", key: ":first_setting"})
|
||||||
second_db = Config.get_by_params(%{group: "pleroma", key: "second_setting"})
|
second_db = Config.get_by_params(%{group: "pleroma", key: ":second_setting"})
|
||||||
refute Config.get_by_params(%{group: "pleroma", key: "Pleroma.Repo"})
|
refute Config.get_by_params(%{group: "pleroma", key: "Pleroma.Repo"})
|
||||||
|
|
||||||
assert Config.from_binary(first_db.value) == [key: "value", key2: [Pleroma.Repo]]
|
assert Config.from_binary(first_db.value) == [key: "value", key2: [Pleroma.Repo]]
|
||||||
|
@ -45,13 +45,13 @@ test "settings are migrated to db" do
|
||||||
test "settings are migrated to file and deleted from db", %{temp_file: temp_file} do
|
test "settings are migrated to file and deleted from db", %{temp_file: temp_file} do
|
||||||
Config.create(%{
|
Config.create(%{
|
||||||
group: "pleroma",
|
group: "pleroma",
|
||||||
key: "setting_first",
|
key: ":setting_first",
|
||||||
value: [key: "value", key2: [Pleroma.Activity]]
|
value: [key: "value", key2: [Pleroma.Activity]]
|
||||||
})
|
})
|
||||||
|
|
||||||
Config.create(%{
|
Config.create(%{
|
||||||
group: "pleroma",
|
group: "pleroma",
|
||||||
key: "setting_second",
|
key: ":setting_second",
|
||||||
value: [key: "valu2", key2: [Pleroma.Repo]]
|
value: [key: "valu2", key2: [Pleroma.Repo]]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ test "settings are migrated to file and deleted from db", %{temp_file: temp_file
|
||||||
assert File.exists?(temp_file)
|
assert File.exists?(temp_file)
|
||||||
{:ok, file} = File.read(temp_file)
|
{:ok, file} = File.read(temp_file)
|
||||||
|
|
||||||
assert file =~ "config :pleroma, setting_first:"
|
assert file =~ "config :pleroma, :setting_first,"
|
||||||
assert file =~ "config :pleroma, setting_second:"
|
assert file =~ "config :pleroma, :setting_second,"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue