From e45e17f97956bfa783a4167644184c3c7ac275a4 Mon Sep 17 00:00:00 2001 From: Windpicker-owo <3431391539@qq.com> Date: Sat, 1 Nov 2025 16:17:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(database):=20=E4=BF=AE=E5=A4=8D=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E4=B8=8D=E5=AD=98=E5=9C=A8=E7=9A=84=20get=5Fall=5Fby/?= =?UTF-8?q?get=5Fall=20=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题: - CRUDBase 没有 get_all() 和 get_all_by() 方法 - 导致运行时错误: greenlet_spawn has not been called 修复: - get_all() get_multi(limit=100000) - get_all_by(chat_id=x) get_multi(chat_id=x, limit=10000) 影响文件: - expression_learner.py: 2处修复 - person_info.py: 1处修复 - chat_stream.py: 1处修复 --- src/chat/express/expression_learner.py | 4 ++-- src/chat/message_receive/chat_stream.py | 2 +- src/person_info/person_info.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/chat/express/expression_learner.py b/src/chat/express/expression_learner.py index efa904b97..91184124a 100644 --- a/src/chat/express/expression_learner.py +++ b/src/chat/express/expression_learner.py @@ -251,7 +251,7 @@ class ExpressionLearner: # 使用CRUD查询 crud = CRUDBase(Expression) - all_expressions = await crud.get_all_by(chat_id=chat_id) + all_expressions = await crud.get_multi(chat_id=chat_id, limit=10000) for expr in all_expressions: # 确保create_date存在,如果不存在则使用last_active_time @@ -284,7 +284,7 @@ class ExpressionLearner: try: # 使用CRUD查询所有表达方式 crud = CRUDBase(Expression) - all_expressions = await crud.get_all() + all_expressions = await crud.get_multi(limit=100000) # 获取所有表达方式 updated_count = 0 deleted_count = 0 diff --git a/src/chat/message_receive/chat_stream.py b/src/chat/message_receive/chat_stream.py index 753da1b42..782ff757b 100644 --- a/src/chat/message_receive/chat_stream.py +++ b/src/chat/message_receive/chat_stream.py @@ -704,7 +704,7 @@ class ChatManager: loaded_streams_data = [] # 使用CRUD批量查询 crud = CRUDBase(ChatStreams) - all_streams = await crud.get_all() + all_streams = await crud.get_multi(limit=100000) # 获取所有聊天流 for model_instance in all_streams: user_info_data = { diff --git a/src/person_info/person_info.py b/src/person_info/person_info.py index 1f66bdde2..1478ab4e4 100644 --- a/src/person_info/person_info.py +++ b/src/person_info/person_info.py @@ -977,7 +977,7 @@ class PersonInfoManager: try: # 使用CRUD获取所有记录 crud = CRUDBase(PersonInfo) - all_records = await crud.get_all() + all_records = await crud.get_multi(limit=100000) # 获取所有记录 for record in all_records: value = getattr(record, f_name, None) if value is not None and way(value):