This commit is contained in:
Timothy Jaeryang Baek
2026-04-02 08:09:57 -05:00
parent 366454e812
commit 640dbb6a28
2 changed files with 20 additions and 6 deletions
+13
View File
@@ -9,6 +9,7 @@ from open_webui.internal.db import Base, JSONField, get_db, get_db_context
from open_webui.models.tags import TagModel, Tag, Tags
from open_webui.models.folders import Folders
from open_webui.models.chat_messages import ChatMessage, ChatMessages
from open_webui.models.automations import AutomationRun
from open_webui.utils.misc import sanitize_data_for_db, sanitize_text_for_db
from pydantic import BaseModel, ConfigDict
@@ -1478,6 +1479,9 @@ class ChatTable:
def delete_chat_by_id(self, id: str, db: Optional[Session] = None) -> bool:
try:
with get_db_context(db) as db:
db.query(AutomationRun).filter_by(chat_id=id).update(
{AutomationRun.chat_id: None}, synchronize_session=False
)
db.query(ChatMessage).filter_by(chat_id=id).delete()
db.query(Chat).filter_by(id=id).delete()
db.commit()
@@ -1489,6 +1493,9 @@ class ChatTable:
def delete_chat_by_id_and_user_id(self, id: str, user_id: str, db: Optional[Session] = None) -> bool:
try:
with get_db_context(db) as db:
db.query(AutomationRun).filter_by(chat_id=id).update(
{AutomationRun.chat_id: None}, synchronize_session=False
)
db.query(ChatMessage).filter_by(chat_id=id).delete()
db.query(Chat).filter_by(id=id, user_id=user_id).delete()
db.commit()
@@ -1503,6 +1510,9 @@ class ChatTable:
self.delete_shared_chats_by_user_id(user_id, db=db)
chat_id_subquery = db.query(Chat.id).filter_by(user_id=user_id).subquery()
db.query(AutomationRun).filter(AutomationRun.chat_id.in_(chat_id_subquery)).update(
{AutomationRun.chat_id: None}, synchronize_session=False
)
db.query(ChatMessage).filter(ChatMessage.chat_id.in_(chat_id_subquery)).delete(
synchronize_session=False
)
@@ -1517,6 +1527,9 @@ class ChatTable:
try:
with get_db_context(db) as db:
chat_id_subquery = db.query(Chat.id).filter_by(user_id=user_id, folder_id=folder_id).subquery()
db.query(AutomationRun).filter(AutomationRun.chat_id.in_(chat_id_subquery)).update(
{AutomationRun.chat_id: None}, synchronize_session=False
)
db.query(ChatMessage).filter(ChatMessage.chat_id.in_(chat_id_subquery)).delete(
synchronize_session=False
)