fix: 适配 SQLite API 替换 MySQL

- config_sync.py:
  - 修复导入: get_sqlite_manager 替代 get_database_manager
  - 修复方法: get_all_camera_configs 替代 get_camera_info
  - 修复方法: get_rois_by_camera 替代 get_roi_configs
  - 修复方法: get_camera_config 替代 get_camera_info
  - 修复方法: get_roi_config 替代 get_roi_configs

- result_reporter.py:
  - 更新注释: 移除 MySQL 相关描述
This commit is contained in:
2026-01-30 11:46:15 +08:00
parent 816a67f33e
commit 2c0fe7f3c5
2 changed files with 19 additions and 11 deletions

View File

@@ -1,6 +1,11 @@
"""
配置同步模块
实现MySQL数据库连接管理、Redis Pub/Sub订阅、配置缓存与动态刷新
实现 SQLite 本地配置存储、Redis Pub/Sub订阅、配置缓存与动态刷新
存储策略:
- SQLite: 本地配置存储摄像头、ROI
- Redis: 配置变更实时推送
- 内存缓存: 热点配置快速访问
"""
import json
@@ -15,7 +20,7 @@ from redis import Redis
from redis.client import PubSub
from config.settings import get_settings, RedisConfig
from config.database import get_database_manager, DatabaseManager
from config.database import get_sqlite_manager, SQLiteManager
from config.config_models import CameraInfo as CameraInfoModel, ROIInfo, ConfigVersion
from utils.version_control import get_version_control
@@ -148,7 +153,7 @@ class ConfigSyncManager:
def _init_database(self):
"""初始化数据库连接"""
if self._db_manager is None:
self._db_manager = get_database_manager()
self._db_manager = get_sqlite_manager()
@property
def config_version(self) -> str:
@@ -263,7 +268,7 @@ class ConfigSyncManager:
return []
try:
cameras = self._db_manager.get_camera_info()
cameras = self._db_manager.get_all_camera_configs()
result = [CameraInfoModel.from_dict(c) for c in cameras]
self._cache.set(cache_key, result)
@@ -292,7 +297,10 @@ class ConfigSyncManager:
return []
try:
roi_configs = self._db_manager.get_roi_configs(camera_id=camera_id)
if camera_id:
roi_configs = self._db_manager.get_rois_by_camera(camera_id)
else:
roi_configs = self._db_manager.get_all_roi_configs()
result = [ROIInfo.from_dict(r) for r in roi_configs]
self._cache.set(cache_key, result)
@@ -314,11 +322,11 @@ class ConfigSyncManager:
try:
if config_type == "camera":
cameras = self._db_manager.get_camera_info(camera_id)
return cameras[0] if cameras else None
camera = self._db_manager.get_camera_config(config_id)
return camera if camera else None
elif config_type == "roi":
rois = self._db_manager.get_roi_configs(roi_id=config_id)
return rois[0] if rois else None
roi = self._db_manager.get_roi_config(config_id)
return roi if roi else None
except Exception as e:
logger.error(f"获取配置失败: {e}")
return None

View File

@@ -1,11 +1,11 @@
"""
结果上报模块
支持 MQTT、云端 MySQL 和本地 SQLite 存储
支持 MQTT 推送和本地 SQLite 存储
存储策略:
- MQTT: 实时推送告警到云端
- SQLite: 本地异步存储(边缘侧断网容灾)
- MySQL: 可选云端同步
- 断网时自动缓存到本地,恢复后自动同步
"""
import json