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