-- ============================================================= -- 升级脚本:MeshSafe 文件安全检测对接 -- 日期:2026-11-01 -- 说明:新增 x_file_security 表(按文件编码维度记录安全检测结果)。 -- 文件上传/传输接收解包后自动提交 MeshSafe 检测, -- 检测结论(通过/不通过)回写本表;同一文件允许多条检测 -- 记录(人工复核、重新检测均新增记录),业务取最新一条生效。 -- 检测不通过的文件禁止分享与跨网传输(下载预览不受限)。 -- 执行方式:MySQL/达梦(DM8 MySQL兼容模式)执行第 1 节; -- PostgreSQL 执行第 2 节。 -- ============================================================= -- ------------------------------------------------------------- -- 1. MySQL / 达梦 DM8 -- ------------------------------------------------------------- CREATE TABLE `x_file_security` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `file_code` varchar(32) DEFAULT NULL COMMENT '文件编码', `task_id` varchar(64) DEFAULT NULL COMMENT 'MeshSafe检测任务ID', `scan_status` varchar(2) DEFAULT NULL COMMENT '检测状态:1检测中/2通过/3不通过/4检测失败', `action` varchar(32) DEFAULT NULL COMMENT 'MeshSafe处置动作:pass/manual_review/reject', `reason` varchar(1024) DEFAULT NULL COMMENT '检测结论说明', `result_json` text DEFAULT NULL COMMENT '检测完整结果JSON', `review_comment` varchar(512) DEFAULT NULL COMMENT '人工复核说明(人工改判时有值)', `deleted` bit(1) DEFAULT b'0' COMMENT '是否删除', `create_by` bigint(20) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` bigint(20) DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', `proxy_by` bigint(20) DEFAULT NULL COMMENT '代理人', PRIMARY KEY (`id`) USING BTREE, KEY `idx_file_security_file_code` (`file_code`) USING BTREE, KEY `idx_file_security_scan_status` (`scan_status`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文件安全检测记录'; -- ------------------------------------------------------------- -- 2. PostgreSQL -- ------------------------------------------------------------- CREATE TABLE x_file_security ( id BIGSERIAL PRIMARY KEY, file_code VARCHAR(32) DEFAULT NULL, task_id VARCHAR(64) DEFAULT NULL, scan_status VARCHAR(2) DEFAULT NULL, action VARCHAR(32) DEFAULT NULL, reason VARCHAR(1024) DEFAULT NULL, result_json TEXT DEFAULT NULL, review_comment VARCHAR(512) DEFAULT NULL, deleted BOOLEAN DEFAULT FALSE, create_by BIGINT DEFAULT NULL, create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, update_by BIGINT DEFAULT NULL, update_time TIMESTAMP DEFAULT NULL, proxy_by BIGINT DEFAULT NULL ); CREATE INDEX idx_file_security_file_code ON x_file_security(file_code); CREATE INDEX idx_file_security_scan_status ON x_file_security(scan_status); COMMENT ON TABLE x_file_security IS '文件安全检测记录'; COMMENT ON COLUMN x_file_security.id IS '主键ID'; COMMENT ON COLUMN x_file_security.file_code IS '文件编码'; COMMENT ON COLUMN x_file_security.task_id IS 'MeshSafe检测任务ID'; COMMENT ON COLUMN x_file_security.scan_status IS '检测状态:1检测中/2通过/3不通过/4检测失败'; COMMENT ON COLUMN x_file_security.action IS 'MeshSafe处置动作:pass/manual_review/reject'; COMMENT ON COLUMN x_file_security.reason IS '检测结论说明'; COMMENT ON COLUMN x_file_security.result_json IS '检测完整结果JSON'; COMMENT ON COLUMN x_file_security.review_comment IS '人工复核说明(人工改判时有值)'; COMMENT ON COLUMN x_file_security.deleted IS '是否删除'; COMMENT ON COLUMN x_file_security.create_by IS '创建人'; COMMENT ON COLUMN x_file_security.create_time IS '创建时间'; COMMENT ON COLUMN x_file_security.update_by IS '修改人'; COMMENT ON COLUMN x_file_security.update_time IS '修改时间'; COMMENT ON COLUMN x_file_security.proxy_by IS '代理人';