Helper module for Elixir that can be used to easily ensure that Ecto database was migrated before rest of the application was started.
In stateless environments such as Docker it is just sometimes more convenient to perform migration upon boot. This is exactly what this library does.
Currently it works only with PostgreSQL databases but that will be easy to extend.
The package can be installed by adding ecto_boot_migration
to your list of
dependencies in mix.exs
:
def deps do
[{:ecto_boot_migration, "~> 0.3.0"}]
end
defmodule MyApp do
use Application
def start(_type, _args) do
import Supervisor.Spec, warn: false
{:ok, _} = EctoBootMigration.migrate(:my_app)
children = [
supervisor(MyApp.Endpoint, []),
worker(MyApp.Repo, []),
]
Supervisor.start_link(children, [strategy: :one_for_one, name: MyApp.Supervisor])
end
end
To see verbose debug output, configure debug: true
:
## in config/config.exs
config :ecto_boot_migration,
debug: true
Inspired by https://hexdocs.pm/distillery/guides/running_migrations.html
MIT
Marcin Lewandowski