99from open_webui .models .tags import TagModel , Tag , Tags
1010from open_webui .models .folders import Folders
1111from open_webui .models .chat_messages import ChatMessage , ChatMessages
12+ from open_webui .models .automations import AutomationRun
1213from open_webui .utils .misc import sanitize_data_for_db , sanitize_text_for_db
1314
1415from pydantic import BaseModel , ConfigDict
@@ -1478,6 +1479,9 @@ def delete_all_tags_by_id_and_user_id(self, id: str, user_id: str, db: Optional[
14781479 def delete_chat_by_id (self , id : str , db : Optional [Session ] = None ) -> bool :
14791480 try :
14801481 with get_db_context (db ) as db :
1482+ db .query (AutomationRun ).filter_by (chat_id = id ).update (
1483+ {AutomationRun .chat_id : None }, synchronize_session = False
1484+ )
14811485 db .query (ChatMessage ).filter_by (chat_id = id ).delete ()
14821486 db .query (Chat ).filter_by (id = id ).delete ()
14831487 db .commit ()
@@ -1489,6 +1493,9 @@ def delete_chat_by_id(self, id: str, db: Optional[Session] = None) -> bool:
14891493 def delete_chat_by_id_and_user_id (self , id : str , user_id : str , db : Optional [Session ] = None ) -> bool :
14901494 try :
14911495 with get_db_context (db ) as db :
1496+ db .query (AutomationRun ).filter_by (chat_id = id ).update (
1497+ {AutomationRun .chat_id : None }, synchronize_session = False
1498+ )
14921499 db .query (ChatMessage ).filter_by (chat_id = id ).delete ()
14931500 db .query (Chat ).filter_by (id = id , user_id = user_id ).delete ()
14941501 db .commit ()
@@ -1503,6 +1510,9 @@ def delete_chats_by_user_id(self, user_id: str, db: Optional[Session] = None) ->
15031510 self .delete_shared_chats_by_user_id (user_id , db = db )
15041511
15051512 chat_id_subquery = db .query (Chat .id ).filter_by (user_id = user_id ).subquery ()
1513+ db .query (AutomationRun ).filter (AutomationRun .chat_id .in_ (chat_id_subquery )).update (
1514+ {AutomationRun .chat_id : None }, synchronize_session = False
1515+ )
15061516 db .query (ChatMessage ).filter (ChatMessage .chat_id .in_ (chat_id_subquery )).delete (
15071517 synchronize_session = False
15081518 )
@@ -1517,6 +1527,9 @@ def delete_chats_by_user_id_and_folder_id(self, user_id: str, folder_id: str, db
15171527 try :
15181528 with get_db_context (db ) as db :
15191529 chat_id_subquery = db .query (Chat .id ).filter_by (user_id = user_id , folder_id = folder_id ).subquery ()
1530+ db .query (AutomationRun ).filter (AutomationRun .chat_id .in_ (chat_id_subquery )).update (
1531+ {AutomationRun .chat_id : None }, synchronize_session = False
1532+ )
15201533 db .query (ChatMessage ).filter (ChatMessage .chat_id .in_ (chat_id_subquery )).delete (
15211534 synchronize_session = False
15221535 )
0 commit comments