mspanc / ecto_boot_migration

Tool for running Ecto migrations upon boot of the Elixir application.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EctoBootMigration

Hex.pm Hex.pm

Helper module for Elixir that can be used to easily ensure that Ecto database was migrated before rest of the application was started.

Rationale

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.

Installation

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

Usage

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

Credits

Inspired by https://hexdocs.pm/distillery/guides/running_migrations.html

License

MIT

Author

Marcin Lewandowski

About

Tool for running Ecto migrations upon boot of the Elixir application.


Languages

Language:Elixir 100.0%