功能:area_id 全链路支持 + 截图处理器独立 Redis 连接
- CameraInfo 模型添加 area_id 字段 - SQLite 表增加 area_id 列及迁移 - config_sync 同步 area_id 到本地 - 告警 ext_data 携带 area_id - 截图处理器使用独立 Redis 连接,避免与配置同步阻塞冲突 - get_all_camera_configs 使用 cursor.description 动态获取列名 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -233,6 +233,7 @@ class SQLiteManager:
|
||||
location TEXT,
|
||||
roi_group_id TEXT,
|
||||
extra_params TEXT,
|
||||
area_id INTEGER,
|
||||
updated_at TEXT
|
||||
)
|
||||
""")
|
||||
@@ -250,7 +251,14 @@ class SQLiteManager:
|
||||
""")
|
||||
|
||||
self._conn.commit()
|
||||
|
||||
|
||||
# 迁移:为已有数据库添加 area_id 列
|
||||
try:
|
||||
cursor.execute("ALTER TABLE camera_configs ADD COLUMN area_id INTEGER")
|
||||
self._conn.commit()
|
||||
except Exception:
|
||||
pass # 列已存在,忽略
|
||||
|
||||
self._init_default_algorithms()
|
||||
|
||||
def _init_default_algorithms(self):
|
||||
@@ -555,8 +563,8 @@ class SQLiteManager:
|
||||
cursor.execute("""
|
||||
INSERT OR REPLACE INTO camera_configs (
|
||||
camera_id, rtsp_url, camera_name, status, enabled,
|
||||
location, roi_group_id, extra_params, updated_at
|
||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
location, roi_group_id, extra_params, area_id, updated_at
|
||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
""", (
|
||||
camera_id, rtsp_url,
|
||||
kwargs.get('camera_name'),
|
||||
@@ -565,6 +573,7 @@ class SQLiteManager:
|
||||
kwargs.get('location'),
|
||||
kwargs.get('roi_group_id'),
|
||||
str(kwargs.get('extra_params')) if kwargs.get('extra_params') else None,
|
||||
kwargs.get('area_id'),
|
||||
now
|
||||
))
|
||||
self._conn.commit()
|
||||
@@ -580,8 +589,7 @@ class SQLiteManager:
|
||||
cursor.execute("SELECT * FROM camera_configs WHERE camera_id = ?", (camera_id,))
|
||||
row = cursor.fetchone()
|
||||
if row:
|
||||
columns = ['camera_id', 'rtsp_url', 'camera_name', 'status',
|
||||
'enabled', 'location', 'roi_group_id', 'extra_params', 'updated_at']
|
||||
columns = [desc[0] for desc in cursor.description]
|
||||
return dict(zip(columns, row))
|
||||
return None
|
||||
except Exception as e:
|
||||
@@ -593,8 +601,7 @@ class SQLiteManager:
|
||||
try:
|
||||
cursor = self._conn.cursor()
|
||||
cursor.execute("SELECT * FROM camera_configs ORDER BY camera_id")
|
||||
columns = ['camera_id', 'rtsp_url', 'camera_name', 'status',
|
||||
'enabled', 'location', 'roi_group_id', 'extra_params', 'updated_at']
|
||||
columns = [desc[0] for desc in cursor.description]
|
||||
return [dict(zip(columns, row)) for row in cursor.fetchall()]
|
||||
except Exception as e:
|
||||
logger.error(f"获取所有摄像头配置失败: {e}")
|
||||
|
||||
Reference in New Issue
Block a user