【发布时间】:2021-03-06 10:41:45
【问题描述】:
我正在运行 FastAPI 和 SQLAlchemy 的设置,以拥有一个运行基本 CRUD 操作的 Web 服务器。一段时间后,服务器在 docker 容器中启动,我收到以下错误消息
sqlalchemy.exc.StatementError: (sqlalchemy.exc.InvalidRequestError) Can't reconnect until invalid transaction is rolled back
FROM users
WHERE users.email = %s]
[parameters: [immutabledict({})]]
INFO:- "POST /routename HTTP/1.0" 500 Internal Server Error
2020-11-23T11:54:38.764592599Z ERROR: Exception in ASGI application
现在据我所知,该问题与会话和会话关闭有关。
这是有问题的路线
@app.post('/routename')
async def getLogin(request: GetLoginRequest):
...
what it does here it just fetches the current user and verifies by come parameters
...
session.close()
return JSONResponse(content=currentUser)
我不知道为什么它会崩溃,尽管最后有 session.close()。
我在应用程序的根目录中定义我的会话
SQLALCHEMY_DATABASE_URL = settings.connection_string
engine = create_engine(SQLALCHEMY_DATABASE_URL)
Session = sessionmaker(autocommit=False, autoflush=False, bind=engine)
session = Session()
Base = automap_base()
老实说,我相信这只是 SQLAlchemy 会话问题,而不是 FASTApi 问题,但我无法破解问题所在以及为什么它不断崩溃。
【问题讨论】:
标签: python sql sqlalchemy fastapi