refactor: 完成数据库重构 - 批量更新导入路径

- 更新35个文件的导入路径 (共65处修改)
- sqlalchemy_models  core.models (模型类)
- sqlalchemy_database_api  compatibility (兼容函数)
- database.database  core (初始化/关闭函数)
- 添加自动化导入更新工具 (scripts/update_database_imports.py)
- 所有兼容性层测试通过 (26/26)
- 数据库核心功能测试通过 (18/21)
This commit is contained in:
Windpicker-owo
2025-11-01 14:22:54 +08:00
parent 62c644c179
commit a1dc03cacc
36 changed files with 251 additions and 65 deletions

View File

@@ -4,8 +4,8 @@ from typing import Any, Literal
from fastapi import APIRouter, HTTPException, Query
from src.common.database.sqlalchemy_database_api import db_get
from src.common.database.sqlalchemy_models import LLMUsage
from src.common.database.compatibility import db_get
from src.common.database.core.models import LLMUsage
from src.common.logger import get_logger
from src.config.config import model_config

View File

@@ -263,7 +263,7 @@ class AntiPromptInjector:
try:
from sqlalchemy import delete
from src.common.database.sqlalchemy_models import Messages, get_db_session
from src.common.database.core.models import Messages, get_db_session
message_id = message_data.get("message_id")
if not message_id:
@@ -290,7 +290,7 @@ class AntiPromptInjector:
try:
from sqlalchemy import update
from src.common.database.sqlalchemy_models import Messages, get_db_session
from src.common.database.core.models import Messages, get_db_session
message_id = message_data.get("message_id")
if not message_id:

View File

@@ -9,7 +9,7 @@ from typing import Any, TypeVar, cast
from sqlalchemy import delete, select
from src.common.database.sqlalchemy_models import AntiInjectionStats, get_db_session
from src.common.database.core.models import AntiInjectionStats, get_db_session
from src.common.logger import get_logger
from src.config.config import global_config

View File

@@ -8,7 +8,7 @@ import datetime
from sqlalchemy import select
from src.common.database.sqlalchemy_models import BanUser, get_db_session
from src.common.database.core.models import BanUser, get_db_session
from src.common.logger import get_logger
from ..types import DetectionResult

View File

@@ -15,8 +15,8 @@ from rich.traceback import install
from sqlalchemy import select
from src.chat.utils.utils_image import get_image_manager, image_path_to_base64
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import Emoji, Images
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import Emoji, Images
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

@@ -203,8 +203,8 @@ class RelationshipEnergyCalculator(EnergyCalculator):
try:
from sqlalchemy import select
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import ChatStreams
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import ChatStreams
async with get_db_session() as session:
stmt = select(ChatStreams).where(ChatStreams.stream_id == stream_id)

View File

@@ -10,8 +10,8 @@ from sqlalchemy import select
from src.chat.message_receive.chat_stream import get_chat_manager
from src.chat.utils.chat_message_builder import build_anonymous_messages, get_raw_msg_by_timestamp_with_chat_inclusive
from src.chat.utils.prompt import Prompt, global_prompt_manager
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import Expression
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import Expression
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

@@ -9,8 +9,8 @@ from json_repair import repair_json
from sqlalchemy import select
from src.chat.utils.prompt import Prompt, global_prompt_manager
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import Expression
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import Expression
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

@@ -649,8 +649,8 @@ class BotInterestManager:
# 导入SQLAlchemy相关模块
import orjson
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import BotPersonalityInterests as DBBotPersonalityInterests
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import BotPersonalityInterests as DBBotPersonalityInterests
async with get_db_session() as session:
# 查询最新的兴趣标签配置
@@ -731,8 +731,8 @@ class BotInterestManager:
# 导入SQLAlchemy相关模块
import orjson
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import BotPersonalityInterests as DBBotPersonalityInterests
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import BotPersonalityInterests as DBBotPersonalityInterests
# 将兴趣标签转换为JSON格式
tags_data = []

View File

@@ -9,8 +9,8 @@ from collections import defaultdict
from dataclasses import dataclass, field
from typing import Any
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import ChatStreams
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import ChatStreams
from src.common.logger import get_logger
from src.config.config import global_config

View File

@@ -9,8 +9,8 @@ from sqlalchemy.dialects.mysql import insert as mysql_insert
from sqlalchemy.dialects.sqlite import insert as sqlite_insert
from src.common.data_models.database_data_model import DatabaseMessages
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import ChatStreams # 新增导入
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import ChatStreams # 新增导入
from src.common.logger import get_logger
from src.config.config import global_config # 新增导入

View File

@@ -8,8 +8,8 @@ import orjson
from sqlalchemy import desc, select, update
from src.common.data_models.database_data_model import DatabaseMessages
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import Images, Messages
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import Images, Messages
from src.common.logger import get_logger
from .chat_stream import ChatStream
@@ -367,7 +367,7 @@ class MessageStorage:
logger.debug(f"消息ID更新已加入批处理队列: {mmc_message_id} -> {qq_message_id}")
else:
# 直接更新(保留原有逻辑用于特殊情况)
from src.common.database.sqlalchemy_models import get_db_session
from src.common.database.core.models import get_db_session
async with get_db_session() as session:
matched_message = (
@@ -510,7 +510,7 @@ class MessageStorage:
async with get_db_session() as session:
from sqlalchemy import select, update
from src.common.database.sqlalchemy_models import Messages
from src.common.database.core.models import Messages
# 查找需要修复的记录interest_value为0、null或很小的值
query = (

View File

@@ -8,8 +8,8 @@ from rich.traceback import install
from sqlalchemy import and_, select
from src.chat.utils.utils import assign_message_ids, translate_timestamp_to_human_readable
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import ActionRecords, Images
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import ActionRecords, Images
from src.common.logger import get_logger
from src.common.message_repository import count_messages, find_messages
from src.config.config import global_config
@@ -990,7 +990,7 @@ async def build_readable_messages(
# 从第一条消息中获取chat_id
chat_id = copy_messages[0].get("chat_id") if copy_messages else None
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.compatibility import get_db_session
async with get_db_session() as session:
# 获取这个时间范围内的动作记录并匹配chat_id

View File

@@ -3,8 +3,8 @@ from collections import defaultdict
from datetime import datetime, timedelta
from typing import Any
from src.common.database.sqlalchemy_database_api import db_get, db_query, db_save
from src.common.database.sqlalchemy_models import LLMUsage, Messages, OnlineTime
from src.common.database.compatibility import db_get, db_query, db_save
from src.common.database.core.models import LLMUsage, Messages, OnlineTime
from src.common.logger import get_logger
from src.manager.async_task_manager import AsyncTask
from src.manager.local_store_manager import local_storage

View File

@@ -12,7 +12,7 @@ from PIL import Image
from rich.traceback import install
from sqlalchemy import and_, select
from src.common.database.sqlalchemy_models import ImageDescriptions, Images, get_db_session
from src.common.database.core.models import ImageDescriptions, Images, 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,7 @@ from typing import Any
from PIL import Image
from src.common.database.sqlalchemy_models import Videos, get_db_session # type: ignore
from src.common.database.core.models import Videos, get_db_session # type: ignore
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

@@ -8,8 +8,8 @@ import numpy as np
import orjson
from src.common.config_helpers import resolve_embedding_dimension
from src.common.database.sqlalchemy_database_api import db_query, db_save
from src.common.database.sqlalchemy_models import CacheEntries
from src.common.database.compatibility import db_query, db_save
from src.common.database.core.models import CacheEntries
from src.common.logger import get_logger
from src.common.vector_db import vector_db_service
from src.config.config import global_config, model_config

View File

@@ -5,10 +5,10 @@ from typing import Any
from sqlalchemy import func, not_, select
from sqlalchemy.orm import DeclarativeBase
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.compatibility import get_db_session
# from src.common.database.database_model import Messages
from src.common.database.sqlalchemy_models import Messages
from src.common.database.core.models import Messages
from src.common.logger import get_logger
from src.config.config import global_config

View File

@@ -4,7 +4,7 @@ from datetime import datetime
from PIL import Image
from src.common.database.sqlalchemy_models import LLMUsage, get_db_session
from src.common.database.core.models import LLMUsage, get_db_session
from src.common.logger import get_logger
from src.config.api_ada_configs import ModelInfo

View File

@@ -220,7 +220,7 @@ class MainSystem:
# 停止数据库服务
try:
from src.common.database.database import stop_database
from src.common.database.core import close_engine as stop_database
cleanup_tasks.append(("数据库服务", stop_database()))
except Exception as e:

View File

@@ -9,8 +9,8 @@ import orjson
from json_repair import repair_json
from sqlalchemy import select
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import PersonInfo
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import PersonInfo
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

@@ -181,8 +181,8 @@ class RelationshipFetcher:
# 5. 从UserRelationships表获取完整关系信息新系统
try:
from src.common.database.sqlalchemy_database_api import db_query
from src.common.database.sqlalchemy_models import UserRelationships
from src.common.database.compatibility import db_query
from src.common.database.core.models import UserRelationships
# 查询用户关系数据(修复:添加 await
user_id = str(await person_info_manager.get_value(person_id, "user_id"))
@@ -243,8 +243,8 @@ class RelationshipFetcher:
str: 格式化后的聊天流印象字符串
"""
try:
from src.common.database.sqlalchemy_database_api import db_query
from src.common.database.sqlalchemy_models import ChatStreams
from src.common.database.compatibility import db_query
from src.common.database.core.models import ChatStreams
# 查询聊天流数据
streams = await db_query(

View File

@@ -9,7 +9,7 @@
注意此模块现在使用SQLAlchemy实现提供更好的连接管理和错误处理
"""
from src.common.database.sqlalchemy_database_api import MODEL_MAPPING, db_get, db_query, db_save, store_action_info
from src.common.database.compatibility import MODEL_MAPPING, db_get, db_query, db_save, store_action_info
# 保持向后兼容性
__all__ = ["MODEL_MAPPING", "db_get", "db_query", "db_save", "store_action_info"]

View File

@@ -52,7 +52,7 @@ from typing import Any
import orjson
from sqlalchemy import func, select
from src.common.database.sqlalchemy_models import MonthlyPlan, Schedule, get_db_session
from src.common.database.core.models import MonthlyPlan, Schedule, 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,7 @@ from sqlalchemy import delete, select
from sqlalchemy.exc import IntegrityError, SQLAlchemyError
from sqlalchemy.ext.asyncio import async_sessionmaker
from src.common.database.sqlalchemy_models import PermissionNodes, UserPermissions, get_engine
from src.common.database.core.models import PermissionNodes, UserPermissions, 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,7 @@
import time
from src.common.database.sqlalchemy_models import UserRelationships, get_db_session
from src.common.database.core.models import UserRelationships, get_db_session
from src.common.logger import get_logger
from src.config.config import global_config

View File

@@ -9,8 +9,8 @@ from typing import Any, ClassVar
from sqlalchemy import select
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import ChatStreams
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import ChatStreams
from src.common.logger import get_logger
from src.config.config import model_config
from src.llm_models.utils_model import LLMRequest

View File

@@ -11,8 +11,8 @@ from sqlalchemy import select
from src.chat.express.expression_selector import expression_selector
from src.chat.utils.prompt import Prompt
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import ChatStreams
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import ChatStreams
from src.common.logger import get_logger
from src.config.config import global_config, model_config
from src.individuality.individuality import Individuality

View File

@@ -10,8 +10,8 @@ from typing import Any, ClassVar
import orjson
from sqlalchemy import select
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import UserRelationships
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import UserRelationships
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

@@ -11,8 +11,8 @@ from collections.abc import Callable
from sqlalchemy import select
from src.common.database.sqlalchemy_database_api import get_db_session
from src.common.database.sqlalchemy_models import MaiZoneScheduleStatus
from src.common.database.compatibility import get_db_session
from src.common.database.core.models import MaiZoneScheduleStatus
from src.common.logger import get_logger
from src.schedule.schedule_manager import schedule_manager

View File

@@ -9,7 +9,7 @@ from json_repair import repair_json
from lunar_python import Lunar
from src.chat.utils.prompt import global_prompt_manager
from src.common.database.sqlalchemy_models import MonthlyPlan
from src.common.database.core.models import MonthlyPlan
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

@@ -5,7 +5,7 @@ from typing import Any
import orjson
from sqlalchemy import select
from src.common.database.sqlalchemy_models import MonthlyPlan, Schedule, get_db_session
from src.common.database.core.models import MonthlyPlan, Schedule, 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