为 Mix 任务启动 Ecto(Mix.EctoSQL.ensure_started 不再工作)
Start Ecto for Mix task (Mix.EctoSQL.ensure_started not working anymore)
我知道这个问题已经被问过了,答案总是单独的答案。
不过我看到 Mix.EctoSQL.ensure_started
提到了很多,这似乎是公认的方法。
但是在 ecto_sql 3.1.2
中,此功能已被完全删除(参见 commit)。我不明白为什么它被删除了。
所以总结一下这个问题:是否有一种可接受的方式来启动 ecto、repo 并确保日志记录后端按预期工作而无需编写太多自定义代码?
目前接受的方法是
Mix.Task.run("app.start")
Mix.EctoSQL.ensure_started
是一个私有函数,不能在 EctoSQL 之外使用。这种新方法 recommended by Jose 取而代之。
应该注意的是,这将启动您的整个应用程序(包括后台工作程序或您的应用程序通常会启动的任何其他内容),因此您可能需要修改 application.ex
文件以在由混合任务。
我知道这个问题已经被问过了,答案总是单独的答案。
不过我看到 Mix.EctoSQL.ensure_started
提到了很多,这似乎是公认的方法。
但是在 ecto_sql 3.1.2
中,此功能已被完全删除(参见 commit)。我不明白为什么它被删除了。
所以总结一下这个问题:是否有一种可接受的方式来启动 ecto、repo 并确保日志记录后端按预期工作而无需编写太多自定义代码?
目前接受的方法是
Mix.Task.run("app.start")
Mix.EctoSQL.ensure_started
是一个私有函数,不能在 EctoSQL 之外使用。这种新方法 recommended by Jose 取而代之。
应该注意的是,这将启动您的整个应用程序(包括后台工作程序或您的应用程序通常会启动的任何其他内容),因此您可能需要修改 application.ex
文件以在由混合任务。