Files
pangolin/server/migrations/mysql/000013_user_sub_token_totp.up.sql
T
wangjia f3471ae139 feat(server/db): 数据层多库支持(1/4)— 连接分派 + 双方言迁移管线
- config 增 DB_DRIVER(mysql 默认 | sqlite);DSN 对 sqlite 为文件路径
- db.OpenDriver 按驱动分派:sqlite 用 modernc(纯 Go 免 CGO)+ WAL/
  busy_timeout/foreign_keys/_txlock=immediate;mysql 路径不变
- store.Open 分派;mysql 保留 UTC/collation 断言,sqlite 跳过
- 迁移拆 migrations/{mysql,sqlite}/ 双套,embed 双 FS,migrate 按驱动选源
  与 golang-migrate 驱动;修复 m.Close() 误关调用方 *sql.DB 的坑
- cmd/migrate 串入 DB_DRIVER;集成测试 MigrateUp 签名更新
- 新增 SQLite 时间往返 smoke 测试与端到端迁移测试(免 docker)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 00:01:03 +08:00

11 lines
785 B
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- Web 用户中心所需的用户级字段:
-- sub_token 个人订阅 URL 的不可猜测 tokenGET /v1/me/subscription 返回,
-- /sub/{token} 据此渲染该用户的 sing-box 订阅配置)。可轮换。
-- totp_secret_enc TOTP 密钥(AES-256-GCM 加密存储,复用 admin/crypto)。NULL=未设置。
-- totp_enabled 是否已启用两步验证(verify 通过后置 true)。
-- 全部可空/带默认,存量用户无需回填即生效(首次访问按需生成 sub_token)。
ALTER TABLE users
ADD COLUMN sub_token CHAR(36) NULL UNIQUE AFTER dp_uuid,
ADD COLUMN totp_secret_enc VARBINARY(255) NULL AFTER sub_token,
ADD COLUMN totp_enabled BOOLEAN NOT NULL DEFAULT FALSE AFTER totp_secret_enc;