StrongMigrations

Build StatusModule VersionHex DocsTotal DownloadLicenseLast Updated

Catch unsafe migrations in your Elixir application

Table of Contents

What is it

strong_migrations is a library that protects your application from invoking unsafe migrations, they needs to be marked as a safe.

  1. Analyze migrations if they are safe.
  2. If migrations are unsafe -> print errors.
  3. If migrations are safe -> use ecto.migrate.

Features

How to install

The package can be installed by adding strong_migrations to your list of dependencies in mix.exs as follows. Also, it's worth adding an alias like: ecto.migrate -> strong_migrations.migrate and thanks to that you'll be sure that all migrations were checked before running.

Update your mix.exs:

def deps do
[
{:strong_migrations, "~> 0.1"}
]
end

How to configure

If you want to specify which classifiers you want to use, please add to your config.exs following lines

config :strong_migrations,
classifiers: [
StrongMigrations.Classifiers.AddIndexConcurrentlyInTransaction,
StrongMigrations.Classifiers.AddIndexNotConcurrently,
StrongMigrations.Classifiers.DropIndexConcurrentlyInTransaction,
StrongMigrations.Classifiers.DropTable,
StrongMigrations.Classifiers.RemoveColumn,
StrongMigrations.Classifiers.RenameColumn
]

If you want to specify migration paths available in your project (not default -> priv/repo/migrations), please add to your config.exs following lines

config :strong_migrations,
migration_paths: [
"priv/repo/migrations",
"apps/*/priv/repo/migrations",
"my/fancy/path/to/migrations"
],

Similar Packages