From ce1c3288fd35806c471ef21f745708f5d8932871 Mon Sep 17 00:00:00 2001 From: Windpicker-owo <3431391539@qq.com> Date: Sat, 1 Nov 2025 14:44:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E5=AF=BC=E5=85=A5=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复12处从错误位置导入get_db_session/get_engine的问题 - 函数应从core导入,模型应从core.models导入 - 修复bot.py使用check_and_migrate_database代替不存在的initialize_database 影响文件: - bot.py: 使用正确的初始化函数 - schedule_manager.py: 修复get_db_session导入 - relationship_service.py: 修复get_db_session导入 - schedule_api.py: 修复get_db_session导入 - utils.py (llm_models): 修复get_db_session导入 - utils_image.py: 修复get_db_session导入 - utils_video.py: 修复get_db_session导入 - user_ban.py: 修复get_db_session导入 - statistics.py: 修复get_db_session导入 - storage.py: 修复get_db_session导入 - anti_injector.py: 修复2处get_db_session导入 - permission_manager.py: 修复get_engine导入 --- bot.py | 4 ++-- src/chat/antipromptinjector/anti_injector.py | 6 ++++-- src/chat/antipromptinjector/management/statistics.py | 3 ++- src/chat/antipromptinjector/management/user_ban.py | 3 ++- src/chat/message_receive/storage.py | 4 ++-- src/chat/utils/utils_image.py | 3 ++- src/chat/utils/utils_video.py | 3 ++- src/llm_models/utils.py | 3 ++- src/plugin_system/apis/schedule_api.py | 3 ++- src/plugin_system/core/permission_manager.py | 3 ++- src/plugin_system/services/relationship_service.py | 3 ++- src/schedule/schedule_manager.py | 3 ++- 12 files changed, 26 insertions(+), 15 deletions(-) diff --git a/bot.py b/bot.py index 827d1e61e..38ec1d006 100644 --- a/bot.py +++ b/bot.py @@ -560,9 +560,9 @@ class MaiBotMain: logger.info("正在初始化数据库表结构...") try: start_time = time.time() - from src.common.database.core.models import initialize_database + from src.common.database.core import check_and_migrate_database - await initialize_database() + await check_and_migrate_database() elapsed_time = time.time() - start_time logger.info(f"数据库表结构初始化完成,耗时: {elapsed_time:.2f}秒") except Exception as e: diff --git a/src/chat/antipromptinjector/anti_injector.py b/src/chat/antipromptinjector/anti_injector.py index 146d6d23b..809fd2c00 100644 --- a/src/chat/antipromptinjector/anti_injector.py +++ b/src/chat/antipromptinjector/anti_injector.py @@ -263,7 +263,8 @@ class AntiPromptInjector: try: from sqlalchemy import delete - from src.common.database.core.models import Messages, get_db_session + from src.common.database.core.models import Messages + from src.common.database.core import get_db_session message_id = message_data.get("message_id") if not message_id: @@ -290,7 +291,8 @@ class AntiPromptInjector: try: from sqlalchemy import update - from src.common.database.core.models import Messages, get_db_session + from src.common.database.core.models import Messages + from src.common.database.core import get_db_session message_id = message_data.get("message_id") if not message_id: diff --git a/src/chat/antipromptinjector/management/statistics.py b/src/chat/antipromptinjector/management/statistics.py index 50ba52052..3bf3b2e5b 100644 --- a/src/chat/antipromptinjector/management/statistics.py +++ b/src/chat/antipromptinjector/management/statistics.py @@ -9,7 +9,8 @@ from typing import Any, TypeVar, cast from sqlalchemy import delete, select -from src.common.database.core.models import AntiInjectionStats, get_db_session +from src.common.database.core.models import AntiInjectionStats +from src.common.database.core import get_db_session from src.common.logger import get_logger from src.config.config import global_config diff --git a/src/chat/antipromptinjector/management/user_ban.py b/src/chat/antipromptinjector/management/user_ban.py index 4f0711e66..ea5ac96dc 100644 --- a/src/chat/antipromptinjector/management/user_ban.py +++ b/src/chat/antipromptinjector/management/user_ban.py @@ -8,7 +8,8 @@ import datetime from sqlalchemy import select -from src.common.database.core.models import BanUser, get_db_session +from src.common.database.core.models import BanUser +from src.common.database.core import get_db_session from src.common.logger import get_logger from ..types import DetectionResult diff --git a/src/chat/message_receive/storage.py b/src/chat/message_receive/storage.py index 02be78320..84a02a9b3 100644 --- a/src/chat/message_receive/storage.py +++ b/src/chat/message_receive/storage.py @@ -8,7 +8,7 @@ import orjson from sqlalchemy import desc, select, update from src.common.data_models.database_data_model import DatabaseMessages -from src.common.database.compatibility import get_db_session +from src.common.database.core import get_db_session from src.common.database.core.models import Images, Messages from src.common.logger import get_logger @@ -367,7 +367,7 @@ class MessageStorage: logger.debug(f"消息ID更新已加入批处理队列: {mmc_message_id} -> {qq_message_id}") else: # 直接更新(保留原有逻辑用于特殊情况) - from src.common.database.core.models import get_db_session + from src.common.database.core import get_db_session async with get_db_session() as session: matched_message = ( diff --git a/src/chat/utils/utils_image.py b/src/chat/utils/utils_image.py index 19d8cc1bb..a43b96083 100644 --- a/src/chat/utils/utils_image.py +++ b/src/chat/utils/utils_image.py @@ -12,7 +12,8 @@ from PIL import Image from rich.traceback import install from sqlalchemy import and_, select -from src.common.database.core.models import ImageDescriptions, Images, get_db_session +from src.common.database.core.models import ImageDescriptions, Images +from src.common.database.core import get_db_session from src.common.logger import get_logger from src.config.config import global_config, model_config from src.llm_models.utils_model import LLMRequest diff --git a/src/chat/utils/utils_video.py b/src/chat/utils/utils_video.py index ca402d2cf..d51e7f7c3 100644 --- a/src/chat/utils/utils_video.py +++ b/src/chat/utils/utils_video.py @@ -25,7 +25,8 @@ from typing import Any from PIL import Image -from src.common.database.core.models import Videos, get_db_session # type: ignore +from src.common.database.core.models import Videos +from src.common.database.core import get_db_session from src.common.logger import get_logger from src.config.config import global_config, model_config from src.llm_models.utils_model import LLMRequest diff --git a/src/llm_models/utils.py b/src/llm_models/utils.py index ad6ff0396..e64b4f8b3 100644 --- a/src/llm_models/utils.py +++ b/src/llm_models/utils.py @@ -4,7 +4,8 @@ from datetime import datetime from PIL import Image -from src.common.database.core.models import LLMUsage, get_db_session +from src.common.database.core.models import LLMUsage +from src.common.database.core import get_db_session from src.common.logger import get_logger from src.config.api_ada_configs import ModelInfo diff --git a/src/plugin_system/apis/schedule_api.py b/src/plugin_system/apis/schedule_api.py index 8eae53dcb..154780da9 100644 --- a/src/plugin_system/apis/schedule_api.py +++ b/src/plugin_system/apis/schedule_api.py @@ -52,7 +52,8 @@ from typing import Any import orjson from sqlalchemy import func, select -from src.common.database.core.models import MonthlyPlan, Schedule, get_db_session +from src.common.database.core.models import MonthlyPlan, Schedule +from src.common.database.core import get_db_session from src.common.logger import get_logger from src.schedule.database import get_active_plans_for_month diff --git a/src/plugin_system/core/permission_manager.py b/src/plugin_system/core/permission_manager.py index c7bc40010..573492782 100644 --- a/src/plugin_system/core/permission_manager.py +++ b/src/plugin_system/core/permission_manager.py @@ -10,7 +10,8 @@ from sqlalchemy import delete, select from sqlalchemy.exc import IntegrityError, SQLAlchemyError from sqlalchemy.ext.asyncio import async_sessionmaker -from src.common.database.core.models import PermissionNodes, UserPermissions, get_engine +from src.common.database.core.models import PermissionNodes, UserPermissions +from src.common.database.core import get_engine from src.common.logger import get_logger from src.config.config import global_config from src.plugin_system.apis.permission_api import IPermissionManager, PermissionNode, UserInfo diff --git a/src/plugin_system/services/relationship_service.py b/src/plugin_system/services/relationship_service.py index 11b0d8605..32a7b3ca2 100644 --- a/src/plugin_system/services/relationship_service.py +++ b/src/plugin_system/services/relationship_service.py @@ -5,7 +5,8 @@ import time -from src.common.database.core.models import UserRelationships, get_db_session +from src.common.database.core.models import UserRelationships +from src.common.database.core import get_db_session from src.common.logger import get_logger from src.config.config import global_config diff --git a/src/schedule/schedule_manager.py b/src/schedule/schedule_manager.py index d578619e8..c32fccfc3 100644 --- a/src/schedule/schedule_manager.py +++ b/src/schedule/schedule_manager.py @@ -5,7 +5,8 @@ from typing import Any import orjson from sqlalchemy import select -from src.common.database.core.models import MonthlyPlan, Schedule, get_db_session +from src.common.database.core.models import MonthlyPlan, Schedule +from src.common.database.core import get_db_session from src.common.logger import get_logger from src.config.config import global_config from src.manager.async_task_manager import AsyncTask, async_task_manager