Merge branch 'ecto-rollback-in-test-env' into 'develop'
[akkoma] / lib / mix / tasks / pleroma / ecto / rollback.ex
index 0033ceba43c45c3952d7381c7594f705dad37ed4..025ebaf19b8e885f19d0f753ebd8db02ef530e7a 100644 (file)
@@ -1,9 +1,10 @@
 # Pleroma: A lightweight social networking server
-# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-onl
 
 defmodule Mix.Tasks.Pleroma.Ecto.Rollback do
   use Mix.Task
+  import Mix.Pleroma
   require Logger
   @shortdoc "Wrapper on `ecto.rollback` task"
 
@@ -19,7 +20,8 @@ defmodule Mix.Tasks.Pleroma.Ecto.Rollback do
     start: :boolean,
     quiet: :boolean,
     log_sql: :boolean,
-    migrations_path: :string
+    migrations_path: :string,
+    env: :string
   ]
 
   @moduledoc """
@@ -36,8 +38,13 @@ defmodule Mix.Tasks.Pleroma.Ecto.Rollback do
 
   @impl true
   def run(args \\ []) do
+    load_pleroma()
     {opts, _} = OptionParser.parse!(args, strict: @switches, aliases: @aliases)
 
+    if Application.get_env(:pleroma, Pleroma.Repo)[:ssl] do
+      Application.ensure_all_started(:ssl)
+    end
+
     opts =
       if opts[:to] || opts[:step] || opts[:all],
         do: opts,
@@ -53,7 +60,7 @@ defmodule Mix.Tasks.Pleroma.Ecto.Rollback do
     level = Logger.level()
     Logger.configure(level: :info)
 
-    if Pleroma.Config.get(:env) == :test do
+    if opts[:env] == "test" do
       Logger.info("Rollback succesfully")
     else
       {:ok, _, _} =