我拥有跨多个相同表格划分的特定实体的数据,通常按时间顺序或按数字范围分隔。例如,我可能有一个名为mytable的表用于当前数据,mytable_2013用于去年的数据,mytable_2012等等。
只写入当前表。其他人只是咨询。使用SQLAlchemy,有什么方法可以指定要在使用声明性模型时查询的表吗?
答案 0 :(得分:5)
使用mixins并通过对象属性更改表名。
class Node(Base):
__tablename__ = 'node'
nid = Column(Integer, primary_key=True)
uuid = Column(String(128))
vid = Column(Integer)
class Node1(Node):
__tablename__ = 'node_1'
class Node2(Node):
__tablename__ = 'node_2'
答案 1 :(得分:3)
根据要求,重新发布为答案:
请在Concrete Table Inheritance
部分查看Mapping lots of similar tables in SQLAlchemy的答案
在您的情况下,只有在处理当前数据时才能查询MyTable
,并在需要整个历史记录时对所有表进行多态搜索。