Skip to content

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

Notifications You must be signed in to change notification settings

mspanc/ecto_boot_migration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages