From 0f93c9a44c9b1cfe533728069300070df59e933c Mon Sep 17 00:00:00 2001
From: Muhammad Rafif Elfazri <rafif.elfazri@gmail.com>
Date: Mon, 15 Feb 2021 14:09:14 +0700
Subject: [PATCH] add release module for production

---
 lib/diskuy/release.ex | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644 lib/diskuy/release.ex

diff --git a/lib/diskuy/release.ex b/lib/diskuy/release.ex
new file mode 100644
index 0000000..8c1e31b
--- /dev/null
+++ b/lib/diskuy/release.ex
@@ -0,0 +1,24 @@
+defmodule Diskuy.Release do
+  @app :diskuy
+
+  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
-- 
GitLab