我最近正在浏览Ecto Postgres Adapter的文档,发现它有maintenance_database
的选项。它说这是删除或创建数据库时使用的数据库。但是为什么需要它,因为在删除或创建数据库时,您大部分时间都在使用混合任务,并且在那时候它将是控制器,因此不会使用持久连接来连接到反正数据库?
我只是对此选项感到困惑,因为它似乎很奇怪,我想知道是否有人可以阐明如何以实际方式使用它,以及为什么它会存在。
如果这是询问此类讨论问题的错误媒体,请告诉我,我将其移至其他位置。
mix
首先不包含在发行版中。想象一下您维护的关键任务软件无法关闭纳秒的情况。现在,出于性能原因,需要清理数据库。
最简单(也是最快)的方法是删除并创建数据库。因此,您指示监督树通过GenServer.code_change/3
回调和部署执行操作的代码来理解此选项。
[另外,我怀疑我遵循您在问题中提到的controller,GenServer.code_change/3
应用程序完全不需要ecto即可运行。