mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-16 20:07:49 +01:00
feat(sqlalchemy): use session factory instead of context manager
This commit is contained in:
@@ -29,7 +29,6 @@ from fastapi import HTTPException
|
||||
from fastapi.middleware.wsgi import WSGIMiddleware
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from sqlalchemy import text
|
||||
from sqlalchemy.orm import Session
|
||||
from starlette.exceptions import HTTPException as StarletteHTTPException
|
||||
from starlette.middleware.base import BaseHTTPMiddleware
|
||||
from starlette.middleware.sessions import SessionMiddleware
|
||||
@@ -57,7 +56,7 @@ from apps.webui.main import (
|
||||
get_pipe_models,
|
||||
generate_function_chat_completion,
|
||||
)
|
||||
from apps.webui.internal.db import get_session, SessionLocal
|
||||
from apps.webui.internal.db import Session, SessionLocal
|
||||
|
||||
|
||||
from pydantic import BaseModel
|
||||
@@ -794,6 +793,14 @@ app.add_middleware(
|
||||
allow_headers=["*"],
|
||||
)
|
||||
|
||||
@app.middleware("http")
|
||||
async def remove_session_after_request(request: Request, call_next):
|
||||
response = await call_next(request)
|
||||
log.debug("Removing session after request")
|
||||
Session.commit()
|
||||
Session.remove()
|
||||
return response
|
||||
|
||||
|
||||
@app.middleware("http")
|
||||
async def check_url(request: Request, call_next):
|
||||
@@ -2034,8 +2041,7 @@ async def healthcheck():
|
||||
|
||||
@app.get("/health/db")
|
||||
async def healthcheck_with_db():
|
||||
with get_session() as db:
|
||||
result = db.execute(text("SELECT 1;")).all()
|
||||
Session.execute(text("SELECT 1;")).all()
|
||||
return {"status": True}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user