J'écris un backend de base de données d'archive multimédia et je souhaite utiliser l'héritage de table jointe. J'utilise Python avec SQLAlchemy avec l'extension déclarative. La table contenant l'enregistrement de médias est la suivante:SQLAlchemy - Configuration du mappeur et base déclarative
_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))
La colonne type
est un discriminateur. Maintenant, je veux définir la classe enfant A
udioRecord de la classe Record
, mais je ne sais pas comment configurer le mappeur polymorphe en utilisant la syntaxe déclarative. Je cherche un équivalent pour le code suivant (de la documentation SQLAlchemy):
mapper(Record, records, polymorphic_on=records.c.type, polymorphic_identity='record')
mapper(AudioRecord, audiorecords, inherits=Record, polymorphic_identity='audio_record')
Comment puis-je passer les polymorphic_on
, polymorphic_identity
et inherits
mots-clés pour le mappeur créé par l'extension déclarative?
Merci Jan
Je pense que vous êtes mieux de demander Mike sur la liste de diffusion SQLAlchemy, il est vraiment utile. –