文件
jw-beauty/server/sql/migrations/2026-07-28-scan-reports-diagnosis-config.sql
T

30 行
2.3 KiB
SQL

-- 迁移:扫描报告存储 + 诊断配置种子(对应小程序 commit 6b91ebe 的诊断链路上线)
-- 幂等:可重复执行。只做两件事,不碰其他表/账号。
-- 执行方式见 WorkLog: products/jw-beauty/2026-07-28-生产DB迁移指引.md
-- 1) 扫描报告表(Phase 1 已定义,生产一直未建)
CREATE TABLE IF NOT EXISTS scan_reports (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id BIGINT UNSIGNED NOT NULL,
device_id VARCHAR(32) NULL,
scanned_at DATETIME NULL,
regions JSON NULL COMMENT 'array of per-region analysis',
overall JSON NULL COMMENT 'array of overall tendencies',
recommend_mask INT NOT NULL DEFAULT 0 COMMENT 'bitmask of regions recommended for care',
recommend_plan JSON NULL COMMENT 'array of {region, mask, wave, wavelength, label_key, level, brightness}',
raw_pd JSON NULL COMMENT 'raw PD samples for the calibration dataset (may be partial)',
calibrated TINYINT NOT NULL DEFAULT 0 COMMENT 'whether thresholds were calibrated',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
KEY idx_scan_reports_user_created (user_id, created_at),
KEY idx_scan_reports_device_created (device_id, created_at),
CONSTRAINT fk_scan_reports_user FOREIGN KEY (user_id) REFERENCES users (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 2) 诊断配置种子(2026-07-28 新结构:极性/阈值/亮度/PD映射全部热调)
-- ON DUPLICATE KEY UPDATE 会覆盖已有的 diagnosis_config——当前生产从未配置过该键,
-- 若执行前发现已有人工调过的值(见指引文档的核查步骤),先备份再执行。
INSERT INTO system_settings (setting_key, setting_value) VALUES
('diagnosis_config', '{"calibrated": false, "note": "阈值/PD映射为待标定初始值(文档建议值+推测映射);polarity=inverted 已由固件确认(PD值大=吸收多);pd_region_map 待固件给出 PD1~7 实际排布后修正", "polarity": "inverted", "th": 0.10, "severity": {"low": 0.05, "mid": 0.15, "high": 0.30}, "brightness": 204, "pd_region_map": {"left": [0], "top": [1], "middle": [2, 3, 4], "bottom": [5], "right": [6]}, "problem_wavelength": {"aging": 2, "acne": 3, "pigment": 4, "deep": 1}}')
ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value);