defmodule SimpleshopTheme.Release do @moduledoc """ Release tasks that can be run via `bin/migrate` or `bin/simpleshop_theme eval`. Migrations run automatically on startup (see Application), so this is mainly useful as a standalone tool for debugging or manual recovery. """ @app :simpleshop_theme 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.ensure_all_started(:ssl) Application.load(@app) end end