Files
pangolin/server/migrations/000007_seed.up.sql
T
wangjia b4114c93ee feat(db): add MySQL migrations 000001-000007 covering all 12 tables + seed [tsk_paiqu21eZIuw]
- 000001: users + devices(账户 / 设备,含 argon2id pw_hash、dp_uuid)
- 000002: plans + subscriptions(套餐口径来自 design/CLAUDE.md §7)
- 000003: code_batches + codes(SHA-256 code_hash,明文不入库)
- 000004: usage_daily + audit_log(最小数据原则 + JSON meta)
- 000005: providers + nodes(providers 先建,nodes FK 引用)
- 000006: node_events(9 值 ENUM)+ directory_version(CHECK id=1,MySQL ≥ 8.0.16)
- 000007: plans 三行 seed + directory_version(1,1),ON DUPLICATE KEY UPDATE 保可重入

所有表 ENGINE=InnoDB DEFAULT CHARSET=utf8mb4,时间列 DATETIME(6),
主键 BIGINT UNSIGNED AUTO_INCREMENT + 对外 uuid CHAR(36) UNIQUE。
每对 down 文件逆序 DROP(子表先于父表)。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 01:28:01 +08:00

20 lines
673 B
SQL

-- plans seed(口径来源:design/CLAUDE.md §7,价格不入表)
-- free: 1 设备,10 分钟/天,每日广告解锁
-- pro: 5 设备,不限时长,无广告门槛
-- team: 10 设备,不限时长,无广告门槛
INSERT INTO plans (code, max_devices, daily_minutes, ad_gate)
VALUES
('free', 1, 10, TRUE),
('pro', 5, NULL, FALSE),
('team', 10, NULL, FALSE)
ON DUPLICATE KEY UPDATE
max_devices = VALUES(max_devices),
daily_minutes = VALUES(daily_minutes),
ad_gate = VALUES(ad_gate);
-- directory_version 单例初始化
INSERT INTO directory_version (id, version)
VALUES (1, 1)
ON DUPLICATE KEY UPDATE
version = VALUES(version);