defmodule Cannery.Repo.Migrator do @moduledoc """ Genserver to automatically perform all migration on app start """ use GenServer require Logger def start_link(_opts) do GenServer.start_link(__MODULE__, [], []) end def init(_opts) do {:ok, if(automigrate_enabled?(), do: migrate!())} end def migrate! do path = Application.app_dir(:cannery, "priv/repo/migrations") Ecto.Migrator.run(Cannery.Repo, path, :up, all: true) end defp automigrate_enabled? do Application.get_env(:cannery, Cannery.Application, automigrate: false)[:automigrate] end end