SQLAlchemy - Конфигурация Mapper и декларативная база - PullRequest
2 голосов
/ 27 апреля 2009

Я пишу бэкэнд базы данных мультимедийного архива и хочу использовать наследование объединенных таблиц. Я использую 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_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 и inherits мапперу, созданному декларативным расширением?

Спасибо Jan

1 Ответ

1 голос
/ 30 апреля 2009

Я наконец нашел ответ в руководстве.

http://www.sqlalchemy.org/docs/05/reference/ext/declarative.html#joined-table-inheritance

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...