2009-04-27 6 views
2

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

+0

Je pense que vous êtes mieux de demander Mike sur la liste de diffusion SQLAlchemy, il est vraiment utile. –

Répondre

Questions connexes