SQLAlchemy自动刷新不';我不能在FastAPI中工作

SQLAlchemy自动刷新不';我不能在FastAPI中工作,sqlalchemy,fastapi,Sqlalchemy,Fastapi,我正在使用FastAPI和SQLAlchemy。我有一个中间件,它将数据库会话添加到request.state,如中所述。我尝试使用autoflush=True创建会话,但发现它存在争用条件问题,有时刷新会如我所预期的那样发生,而有时则会发生得太晚。这可能会导致在我假定将记录插入数据库时,它不会插入数据库 是什么导致自动刷新无法工作?当您这样覆盖时会有什么不同吗request.state.db=SessionLocal(session_options={“autoflush”:True})我的建

我正在使用FastAPI和SQLAlchemy。我有一个中间件,它将数据库会话添加到request.state,如中所述。我尝试使用autoflush=True创建会话,但发现它存在争用条件问题,有时刷新会如我所预期的那样发生,而有时则会发生得太晚。这可能会导致在我假定将记录插入数据库时,它不会插入数据库


是什么导致自动刷新无法工作?

当您这样覆盖时会有什么不同吗
request.state.db=SessionLocal(session_options={“autoflush”:True})
我的建议有意义吗@hekevintranHi@YagizcanDegirmenci我尝试了这个方法,它导致了一个错误“AttributeError:'State'对象没有属性'db'”。我在SQLAlchemy文档中也找不到任何名为
session\u options
的参数。我的问题是为什么FastAPI文档建议autoflush=False。代码示例中有这个,但文档没有解释原因。你对此有什么想法吗?当你这样覆盖时会有什么不同吗
request.state.db=SessionLocal(session_options={“autoflush”:True})
我的建议有意义吗@hekevintranHi@YagizcanDegirmenci我尝试了这个方法,它导致了一个错误“AttributeError:'State'对象没有属性'db'”。我在SQLAlchemy文档中也找不到任何名为
session\u options
的参数。我的问题是为什么FastAPI文档建议autoflush=False。代码示例中有这个,但文档没有解释原因。你对此有什么想法吗?