从elixir应用程序的发行版进行Ecto迁移

时间:2017-04-07 06:19:16

标签: elixir distillery

我已经发布了我的长生不老药申请 当应用程序被启动时,它开始使用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 个答案:

答案 0 :(得分:3)

使用Application.load(:my_app)加载应用程序以访问env就足够了 - 它不需要启动。

有关使用版本运行迁移的详细指南,请参见distillery documentation