Python SQLAlchemy-映射器配置和声明性基础
我正在编写一个多媒体存档数据库后端,我想使用联接表继承。我正在使用Python和SQLAlchemy以及声明性扩展。保存媒体记录的表格如下所示:Python SQLAlchemy-映射器配置和声明性基础,python,sqlalchemy,Python,Sqlalchemy,我正在编写一个多媒体存档数据库后端,我想使用联接表继承。我正在使用Python和SQLAlchemy以及声明性扩展。保存媒体记录的表格如下所示: _Base = declarative_base() class Record(_Base): __tablename__ = 'records' item_id = Column(String(M_ITEM_ID), ForeignKey('items.id')) storage_id = Column(String(M_
_Base = declarative_base()
class Record(_Base):
__tablename__ = 'records'
item_id = Column(String(M_ITEM_ID), ForeignKey('items.id'))
storage_id = Column(String(M_STORAGE_ID), ForeignKey('storages.id'))
id = Column(String(M_RECORD_ID), primary_key=True)
uri = Column(String(M_RECORD_URI))
type = Column(String(M_RECORD_TYPE))
name = Column(String(M_RECORD_NAME))
列type
是一个鉴别器。现在我想从Record
类定义子类A
udioRecord,但我不知道如何使用声明性语法设置多态映射器。我正在寻找以下代码的等效代码(来自SQLAlchemy文档):
如何将polymorphic_on
、polymorphic_identity
和继承
关键字传递给声明性扩展创建的映射器
多谢各位
简我终于在手册中找到了答案
我认为你最好在SQLAlchemy邮件列表上询问Mike,他真的很有帮助。
mapper(Record, records, polymorphic_on=records.c.type, polymorphic_identity='record')
mapper(AudioRecord, audiorecords, inherits=Record, polymorphic_identity='audio_record')