summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLogan Hunt <loganhunt@simponic.xyz>2022-04-21 18:54:26 -0600
committerLogan Hunt <loganhunt@simponic.xyz>2022-04-21 18:54:26 -0600
commitc9a6abf9b7f67dd1bdf465de02fe17e859914464 (patch)
tree210f2099f9e644c34206af3d494e4dfd075f4b17 /lib
parentf6b262ea668bfaef48be40efb809e791258e2417 (diff)
downloadaggiedit-c9a6abf9b7f67dd1bdf465de02fe17e859914464.tar.gz
aggiedit-c9a6abf9b7f67dd1bdf465de02fe17e859914464.zip
Get ready for deployment
Diffstat (limited to 'lib')
-rw-r--r--lib/aggiedit/release.ex28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/aggiedit/release.ex b/lib/aggiedit/release.ex
new file mode 100644
index 0000000..c1f6c7e
--- /dev/null
+++ b/lib/aggiedit/release.ex
@@ -0,0 +1,28 @@
+defmodule Aggiedit.Release do
+ @moduledoc """
+ Used for executing DB release tasks when run in production without Mix
+ installed.
+ """
+ @app :aggiedit
+
+ def migrate do
+ load_app()
+
+ for repo <- repos() do
+ {:ok, _, _} = Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :up, all: true))
+ end
+ end
+
+ def rollback(repo, version) do
+ load_app()
+ {:ok, _, _} = Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :down, to: version))
+ end
+
+ defp repos do
+ Application.fetch_env!(@app, :ecto_repos)
+ end
+
+ defp load_app do
+ Application.load(@app)
+ end
+end