我知道这个问题已经问过了,答案始终是个人答案。
但是我看到Mix.EctoSQL.ensure_started
提到了很多,似乎这是公认的方法。
但是,对于ecto_sql 3.1.2
,此功能已被完全删除(请参见commit)。对我来说,为什么将其删除并不明显。
所以总结一下这个问题:是否有一种公认的方式可以启动ecto,回购协议并确保日志记录后端按预期方式工作而无需编写过多的自定义代码?
答案 0 :(得分:2)
目前公认的方法是使用
Mix.Task.run("app.start")
Mix.EctoSQL.ensure_started
是一个私有函数,不能在EctoSQL之外使用。这种新方法就是替代recommended by Jose的一种方法。
应注意,这将启动整个应用程序(包括后台工作程序或应用程序通常会启动的其他任何程序),因此您可能希望修改application.ex
文件,以使其在通过混合任务启动时不启动这些文件