AssertionError in _entity_for_mapper since 1.0.10

Issue #3614 duplicate
Bertrand Croq created an issue

Upgrading from SQLAlchemy 1.0.9 to 1.0.10 breaks the following code:

from sqlalchemy import create_engine
from sqlalchemy import Column, ForeignKey, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, sessionmaker

Base = declarative_base()


class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)


class UserRole(Base):
    __tablename__ = 'user_roles'

    id = Column(Integer, primary_key=True)

    row_type = Column(String, nullable=False)
    __mapper_args__ = {'polymorphic_on': row_type}

    user_id = Column(Integer, ForeignKey('users.id'), nullable=False)
    user = relationship('User', lazy=False)


class Admin(UserRole):
    __tablename__ = 'admins'
    __mapper_args__ = {'polymorphic_identity': 'admin'}

    id = Column(Integer, ForeignKey('user_roles.id'), primary_key=True)


class Thing(Base):
    __tablename__ = 'things'

    id = Column(Integer, primary_key=True)

    admin_id = Column(Integer, ForeignKey('admins.id'))
    admin = relationship('Admin', lazy=False)


engine = create_engine('sqlite:///:memory:', echo=True)
Session = sessionmaker(bind=engine)
Base.metadata.create_all(engine)

session = Session()
print session.query(Thing).all()

Comments (4)

  1. Log in to comment