[阶段3] FAM-Core 瘦身为管理后台+Oracle-Sync 同步引擎,FAM-UI 改读同步镜像 - 删除 scheduler/dispatcher/poller/event_receiver/video_server,新增 oracle_sync 每30分钟拉增量写 sync_* 镜像表;member_manager/chat_handler 改走同步数据;UI 移除帧图改为事件时间线;DDL 新增 sync_videos/events/people/cursor
This commit is contained in:
@@ -121,6 +121,67 @@ CREATE TABLE IF NOT EXISTS family_members (
|
||||
INDEX idx_is_active (is_active)
|
||||
) ENGINE=InnoDB COMMENT='家庭成员表(交互式命名)';
|
||||
|
||||
-- ============================================================
|
||||
-- 7. 甲骨文同步镜像表(新架构 v2,2026-08-21)
|
||||
-- NAS 每 30 分钟从甲骨文 FAM-Edge 拉增量,镜像到本地,仅作展示
|
||||
-- 字段对齐 Oracle 端 SQLite 库(oracle_db.py)
|
||||
-- ============================================================
|
||||
|
||||
-- 7.1 视频会话表(Oracle videos 镜像)
|
||||
CREATE TABLE IF NOT EXISTS sync_videos (
|
||||
id INT PRIMARY KEY COMMENT 'Oracle videos.id',
|
||||
drive_file_id VARCHAR(255) COMMENT 'Google 硬盘文件 ID',
|
||||
filename VARCHAR(500) NOT NULL UNIQUE COMMENT '视频文件名(唯一)',
|
||||
camera_name VARCHAR(50) COMMENT '摄像头名称/位置',
|
||||
duration_sec DOUBLE DEFAULT 0 COMMENT '视频时长(秒)',
|
||||
event_start_time VARCHAR(32) COMMENT '视频开始时间(文本)',
|
||||
status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending/done/failed',
|
||||
summary_json LONGTEXT COMMENT '全局摘要文本',
|
||||
events_json LONGTEXT COMMENT '事件列表 JSON 数组(冗余,便于查询)',
|
||||
people_json LONGTEXT COMMENT '人物列表 JSON 数组',
|
||||
compute_provider VARCHAR(255) COMMENT '模型来源,如 gemini / nvidia',
|
||||
created_at VARCHAR(32),
|
||||
updated_at VARCHAR(32),
|
||||
processed_at VARCHAR(32),
|
||||
synced_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '最近一次同步写入时间',
|
||||
INDEX idx_processed (processed_at),
|
||||
INDEX idx_status (status)
|
||||
) ENGINE=InnoDB COMMENT='甲骨文视频会话镜像表';
|
||||
|
||||
-- 7.2 事件明细表(Oracle events 镜像)
|
||||
CREATE TABLE IF NOT EXISTS sync_events (
|
||||
id INT PRIMARY KEY COMMENT 'Oracle events.id',
|
||||
video_id INT NOT NULL COMMENT '关联 sync_videos.id',
|
||||
ts VARCHAR(32) COMMENT '事件时间点(文本)',
|
||||
description TEXT COMMENT '事件描述',
|
||||
person_list_json LONGTEXT COMMENT '涉及人物 JSON 数组(字符串或标签)',
|
||||
is_attention_event TINYINT(1) DEFAULT 0 COMMENT 'AI 判断是否为关注事件',
|
||||
updated_at VARCHAR(32),
|
||||
synced_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
INDEX idx_video (video_id),
|
||||
INDEX idx_ts (ts)
|
||||
) ENGINE=InnoDB COMMENT='甲骨文事件镜像表';
|
||||
|
||||
-- 7.3 人物规范表(Oracle people 镜像)
|
||||
CREATE TABLE IF NOT EXISTS sync_people (
|
||||
id INT PRIMARY KEY COMMENT 'Oracle people.id',
|
||||
label VARCHAR(100) NOT NULL UNIQUE COMMENT '抽象标识,如"人物A"',
|
||||
canonical_name VARCHAR(100) COMMENT '规范名(用户命名或 LLM 合并),NULL 表示未命名',
|
||||
first_seen VARCHAR(32) COMMENT '首次出现时间',
|
||||
appearances INT DEFAULT 0 COMMENT '出现次数',
|
||||
source VARCHAR(20) DEFAULT 'llm' COMMENT 'llm / manual(manual 优先不被覆盖)',
|
||||
updated_at VARCHAR(32),
|
||||
synced_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
INDEX idx_label (label),
|
||||
INDEX idx_canonical (canonical_name)
|
||||
) ENGINE=InnoDB COMMENT='甲骨文人物规范镜像表';
|
||||
|
||||
-- 7.4 同步游标表
|
||||
CREATE TABLE IF NOT EXISTS sync_cursor (
|
||||
key VARCHAR(50) PRIMARY KEY,
|
||||
value VARCHAR(64) COMMENT '上次成功拉取到的 server_time(ISO 文本)'
|
||||
) ENGINE=InnoDB COMMENT='同步游标表';
|
||||
|
||||
-- ============================================================
|
||||
-- 验证
|
||||
-- ============================================================
|
||||
|
||||
Reference in New Issue
Block a user