如何为ecto模型动态设置模式表名称

时间:2016-11-18 22:55:48

标签: elixir phoenix-framework ecto

我有一个模型,我想在多个数据库表中进行分区。所有的数据和功能都是一样的,所以我想使用相同的模块/ ecto.model,但只是保存的表不同。此外,直到运行时我才会知道表名是什么。

有人可以建议一种动态设置 SCHEMA 表名的方法吗?

1 个答案:

答案 0 :(得分:3)

大多数期望架构的函数也接受{"source", Schema}形式的元组,其中source是表名。源也由结构体正确维护,因此如果您从特定源中进行选择,则在更新/删除时它将解析为正确的表。还有Ecto.put_meta(struct, source: "source")用于注释已构建的结构。

最近还扩展了这些功能以涵盖更多用例,您可以在此问题中看到更多:#1797