fix: 修复数据库导入错误

- 修复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导入
This commit is contained in:
Windpicker-owo
2025-11-01 14:44:13 +08:00
parent 58c84f8f72
commit ce1c3288fd
12 changed files with 26 additions and 15 deletions

4
bot.py
View File

@@ -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:

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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 = (

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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