SQLAlchemy,使用与多个表相同的模型

时间:2014-08-22 16:12:22

标签: python sqlalchemy

我拥有跨多个相同表格划分的特定实体的数据,通常按时间顺序或按数字范围分隔。例如,我可能有一个名为mytable的表用于当前数据,mytable_2013用于去年的数据,mytable_2012等等。

只写入当前表。其他人只是咨询。使用SQLAlchemy,有什么方法可以指定要在使用声明性模型时查询的表吗?

2 个答案:

答案 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,并在需要整个历史记录时对所有表进行多态搜索。