Ecto中的多个数据库

时间:2016-08-22 02:13:27

标签: elixir ecto

我有一个针对多个数据库的应用程序,它就像一个监视应用程序的应用程序,这些应用程序以无法静态控制的方式(在配置文件中)生成报告,调解通知,运行任务和填充内容),所以我认为可以启动一个主管,监督多个Repo只更改opts中的设置(我正在思考一个回购池,这样的话,听起来很疯狂,我知道),但这是不可能的,因为Ecto.Repo有一个宏使得连接绑定到Repo的模块,因此,有一种方法可以重写{ {1}}以某种方式可以满足我的需求?我查看了ecto的消息来源,但我发现没有单独的解决方案。

我还查看了this post,但是应用程序可能会针对多个实例,具有不同的用户,不同的凭据等。

我已经使用Ecto.Repo即时创建了Repos,但我不知道&#34是的,如果它受到鼓励。

2 个答案:

答案 0 :(得分:1)

如果您知道需要访问的所有存储库,我建议将应用程序拆分为更多伞形应用程序。每个伞形应用程序都可以连接到不同的ecto存储库。

作为一种好的做法,我总是提取Ecto和数据库相关的代码来分隔由域分隔的伞形应用程序。您可以在此演示应用程序中看到一个示例:https://github.com/silviurosu/elixir-umbrella-ddd

答案 1 :(得分:0)

在Phoenix和Ecto中有一个名为apartmentex的多租户支持库https://github.com/Dania02525/apartmentex