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"}]
enddefmodule 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
endTo see verbose debug output, configure debug: true:
## in config/config.exs
config :ecto_boot_migration,
debug: trueInspired by https://hexdocs.pm/distillery/guides/running_migrations.html
MIT
Marcin Lewandowski