diff options
author | Logan Hunt <loganhunt@simponic.xyz> | 2022-04-21 18:54:26 -0600 |
---|---|---|
committer | Logan Hunt <loganhunt@simponic.xyz> | 2022-04-21 18:54:26 -0600 |
commit | c9a6abf9b7f67dd1bdf465de02fe17e859914464 (patch) | |
tree | 210f2099f9e644c34206af3d494e4dfd075f4b17 /lib | |
parent | f6b262ea668bfaef48be40efb809e791258e2417 (diff) | |
download | aggiedit-c9a6abf9b7f67dd1bdf465de02fe17e859914464.tar.gz aggiedit-c9a6abf9b7f67dd1bdf465de02fe17e859914464.zip |
Get ready for deployment
Diffstat (limited to 'lib')
-rw-r--r-- | lib/aggiedit/release.ex | 28 |
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 |