【发布时间】:2014-06-18 09:36:02
【问题描述】:
在 SQLAlchemy 中,我已经阅读了如何在声明声明时结合来自不同 mixin 的 __table_args__。
Combining Table/Mapper Arguments from Multiple Mixins
我的问题是,该示例显示了如何在链的末端(MRO 中的最终类)完成此操作,但是如果我有这些 Mixin 并希望它发生在MyClientMixin 或 Base 类以避免将此代码复制到其他类型的 mixins?
class LaneCarrierCommitmentSummaryMixin(object):
""" Lane Carrier Commitment Summary.
A base class for LCCS to mixin with a client specific class.
"""
__tablename__ = 'lane_carrier_commitment_summary'
__table_args__ = ((UniqueConstraint(['hashmap_key', 'bow'],
name='uq_lane_carrier_commitment_summary_hashmap_key_bow')),)
class MyClientMixin(object):
""" MyClient Mixin class for providing the ETL schema. """
__table_args__ = {'schema': 'myclient_etl'}
class MyClientLaneCarrierCommitmentSummary(LaneCarrierCommitmentSummaryMixin, DateTrackedMixin, MyClientMixin, Base):
pass
我在这个概念上有点挣扎。
【问题讨论】:
标签: python orm sqlalchemy declarative