Closed
Description
this continues from #4353, the load is still raising for a delete:
from sqlalchemy import Column, ForeignKey, Integer, create_engine, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, sessionmaker
Base = declarative_base()
class Parent(Base):
__tablename__ = 'parents'
id = Column(Integer, primary_key=True)
class Child(Base):
__tablename__ = 'children'
id = Column(Integer, primary_key=True)
parent_id = Column(Integer, ForeignKey(Parent.id))
parent = relationship(Parent, lazy='raise')
data = Column(String)
engine = create_engine('sqlite:///:memory:', echo=True)
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
# Add
parent = Parent()
session.add(parent)
session.flush()
child = Child(parent_id=parent.id)
session.add(child)
session.commit()
session.close()
child = session.query(Child).first()
#child.data = 'foo'
session.delete(child)
session.commit()
Metadata
Metadata
Assignees
Labels
Type
Projects
Relationships
Development
No branches or pull requests
Activity
sqla-tester commentedon Nov 22, 2019
Mike Bayer has proposed a fix for this issue in the master branch:
Don't raise w/ raiseload strategy for many-to-one history in flush https://gerrit.sqlalchemy.org/1586
sqla-tester commentedon Nov 22, 2019
Mike Bayer has proposed a fix for this issue in the rel_1_3 branch:
Don't raise w/ raiseload strategy for many-to-one history in flush https://gerrit.sqlalchemy.org/1587
Don't raise w/ raiseload strategy for many-to-one history in flush
Don't raise w/ raiseload strategy for many-to-one history in flush