From 97b28d24439411ea63af4476918b121ebeacf521 Mon Sep 17 00:00:00 2001 From: Jyri Genral Date: Wed, 19 May 2021 22:04:24 +0300 Subject: [PATCH] Add very basic database migration helpers. For example, you can do Ecto migrations by running $ _build/prod/rel/runosaari/bin/runosaari eval "Runosaari.Release.migrate" --- lib/runosaari/release.ex | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 lib/runosaari/release.ex diff --git a/lib/runosaari/release.ex b/lib/runosaari/release.ex new file mode 100644 index 0000000..4901818 --- /dev/null +++ b/lib/runosaari/release.ex @@ -0,0 +1,24 @@ +defmodule Runosaari.Release + @app :runosaari + + 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