マルチメディア アーカイブ データベースのバックエンドを作成しており、結合テーブルの継承を使用したいと考えています。宣言型拡張機能を使用して SQLAlchemy で Python を使用しています。メディア レコードを保持するテーブルは次のとおりです。
_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
は識別子です。A
クラスから子クラスのudioRecordを定義したいのですが、宣言構文を使用しRecord
てポリモーフィック マッパーをセットアップする方法がわかりません。次のコードに相当するものを探しています (SQLAlchemy のドキュメントから):
mapper(Record, records, polymorphic_on=records.c.type, polymorphic_identity='record')
mapper(AudioRecord, audiorecords, inherits=Record, polymorphic_identity='audio_record')
宣言型拡張によって作成されたマッパーにpolymorphic_on
, polymorphic_identity
andキーワードを渡すにはどうすればよいですか?inherits
ありがとうジャン