我是sql-alchemy的新手,并试图了解在下列情况下会发生什么:
我们假设我有以下代码:
with db.mysession() as session:
first_obj = session.query(db.my_table).filter(db.obj.index == 1)
second_obj = session.query(db.my_table).filter(db.obj.index == 2)
first_obj.delete()
# note this was not commited to the db and I'm creating a new session
session = db.mysession()
second_obj_2 = session.query(db.my_table).filter(db.obj.index == 2)
second_obj_2 = "some_change"
mysession()只是打开并且sqlalchemy会话到数据库并在退出时关闭它。
答案 0 :(得分:0)
因此,经过一番调查后,发生了什么:
我们打开了会话上下文而没有关闭它,导致session._depth变得不平衡,因此外部上下文无法提交,因此所有更改都没有提交。