如何运行' mix'发布上的命令(elixir / exrm)?

时间:2016-03-31 23:53:05

标签: elixir mix exrm

使用Elixir / mix构建的应用程序。

我们有一堆实用函数(即:seed / clear Mnesia db),它们以elixir mix foo运行。

一旦构建了一个版本(使用mix + exrm),并部署在目标机器上(我们不希望有完整的构建链或完整的源代码)是否有实用的方法来访问这些命令?

1 个答案:

答案 0 :(得分:2)

请参阅https://github.com/bitwalker/exrm/issues/67#issuecomment-183457937

  

现在#286已修复,我建议采用以下方法,这就是我们如何做到这一点:

     

构建一个escript,调用发布中可用的任务(使用exrm插件:https://gist.github.com/MSch/9cfc185e24e2f3509650)并从发行版中调用它:

     

rel / pssync / bin / pssync escript bin / release_tasks.escript migrate   这样我们就可以控制迁移,种子等的时间和地点。

     

有一些重复/间接,因为我们希望(大多数)任务可以通过开发中的混合和生产中的release_tasks.escript获得,但这是可管理的。这也意味着我们可以在不完全启动OTP应用程序的情况下进行迁移。

     

在一个理想的未来,这将被升级为exrm并且更加紧密集成,以便我可以执行rel / pssync / bin / pssyc迁移,但到目前为止,我们已经对我们的方法有了很好的体验。