migrations/ 下的迁移文件创建。下表是当前(迁移编号至 0032)的核心结构与新增表摘要。
posts(文章)
enc 字段格式:JSON({salt, iv, data}),明文文章为 NULL;protected = 1 时列表接口不下发 content。详见文章加密。comments(评论)
后两个索引由
0015_hot_path_indexes.sql 补齐:(post_id, id) 服务文章详情页的评论列表与去重查询,(status, date) 服务后台「按审核状态过滤 + 按日期排序」。详见迁移脚本。stats(统计)
stats_daily(每日统计)
(post_id, date) 累加,后台「近 30 天趋势」与 /api/stats/trend 直接读这张表。
admin_auth(管理员认证)
密码以 PBKDF2-SHA256 加盐哈希存储(
iter 默认 100000,为 CF WebCrypto 上限),绝不存明文。must_change 后端会随登录响应返回,但前端只做提示、不强制跳转。admin_sessions(登录会话)
admin_fails(登录限流计数)
ip 列复用为三种计数维度:
media(媒体)
music(音乐)
音频文件本体存放在 Cloudflare R2,D1 仅存元数据。详见音乐。
site_settings(站点设置)
site_info、profile、nav_menu、footer_nav、friend_links、moderate_comments、features、comment_blocklist。其中 features 是后台「功能开关」与广告配置的 JSON,详见配置参考与站点设置。
site_files(站点产物)
新增表(0016 ~ 0032)
以下表格由后续迁移加入,完整 DDL 见仓库migrations/:
posts 还新增了 og_image、series、series_order、publish_at、seo、author 等字段;comments 新增 likes、featured、pinned;media 新增 thumb_url。
