我有一个模型,我想在多个数据库表中进行分区。所有的数据和功能都是一样的,所以我想使用相同的模块/ ecto.model,但只是保存的表不同。此外,直到运行时我才会知道表名是什么。
有人可以建议一种动态设置 SCHEMA 表名的方法吗?
答案 0 :(得分:3)
大多数期望架构的函数也接受{"source", Schema}
形式的元组,其中source是表名。源也由结构体正确维护,因此如果您从特定源中进行选择,则在更新/删除时它将解析为正确的表。还有Ecto.put_meta(struct, source: "source")
用于注释已构建的结构。
最近还扩展了这些功能以涵盖更多用例,您可以在此问题中看到更多:#1797。