簡體   English   中英

如何在發行版(elixir / exrm)上運行'mix'命令?

[英]How to run 'mix' commands on a release (elixir/exrm)?

使用Elixir / mix構建的應用程序。

我們有一堆實用函數(即:seed / clear Mnesia db),它們作為elixir mix foo運行。

一旦構建了一個版本(使用mix + exrm),並部署在目標機器上(我們不希望有完整的構建鏈或完整的源代碼)是否有實用的方法來訪問這些命令?

請參閱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遷移,但到目前為止,我們已經對我們的方法有了很好的體驗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM