Do Ecto миграции из релиза приложения эликсир

Я сделал релиз своего приложения эликсира.
Он запускает контролируемую задачу, используя DB, когда приложение запускается.

Когда БД не переносится, задача сохраняет ошибку и приложение завершается.

Я прочитал http://blog.firstiwaslike.com/elixir-deployments-with-distillery-running-ecto-migrations/, https://hexdocs.pm/distillery/running-migrations.html и попытался реализовать функцию миграции после их, но не удалось, потому что приложение должно быть запущено, чтобы загрузить конфигурацию приложения, и оно делает команду прекращенной.

Когда я бегу Application.get_all_env(:my_app) без запуска моего приложения, он возвращает пустой список [], В любом случае, бежать Ecto.Migrator.run(MyApp.Repo, path, :up, all: true) без запуска приложения?

1 ответ

Решение

Достаточно загрузить приложение с Application.load(:my_app) иметь доступ к env - его не нужно запускать.

Подробное руководство по выполнению миграции с выпусками доступно в документации винокурни.

Другие вопросы по тегам