Большая часть этой концепции прекрасно работает для меня, но мне не удается связать существующую таблицу с вновь созданным классом, который использует наследование нескольких таблиц. Вот некоторый код, чтобы прояснить ситуацию:
Base.metadata.reflect(bind=Session.bind)
table = Base.metadata.tables['anExistingTable']
Extension = type('Extension', (BaseClass,), {})
orm.mapper(Extension, table, inherits=orm.class_mapper(BaseClass),
polymorphic_identity='extension')
Это приводит к следующей ошибке:
ArgumentError: Class '<class 'Extension'>' already has a primary mapper defined. Use non_primary=True to create a non primary Mapper. clear_mappers() will remove *all* current mappers from all classes.
Есть ли у вас идеи, почему в только что созданном классе определен основной преобразователь?