feat(api): auto-create and migrate messages table on first request

ensureSchema runs idempotent CREATE TABLE / ALTER TABLE (skipping
duplicate-column errors), cached once per isolate with retry on failure;
schema.sql becomes reference-only documentation
This commit is contained in:
hanyixuanten committed 2026-10-25 12:15:52 +00:00
1 parent ca422df0c3
commit 4b489a3ebb
2 files changed
+46 -7

No files matched your search

+3 -6
View File
@@ -1,7 +1,8 @@
-- D1 数据库结构(留言墙 /api/messages 使用,绑定名 DB)
--
-- 全新部署:直接执行下面的 CREATE TABLE。
-- 已有部署:老表缺少 ua / country 列时,执行文件末尾注释里的 ALTER TABLE。
-- 无需手动执行:Functions 首次访问会自动建表并为旧表补齐缺失的列
-- (见 functions/api/messages.js 的 ensureSchema)。本文件仅作结构参考,
-- 需要手工干预(如排查问题)时再执行。
CREATE TABLE IF NOT EXISTS messages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -13,7 +14,3 @@ CREATE TABLE IF NOT EXISTS messages (
country TEXT, -- 国家/地区代码,来自 CF-IPCountry(审计)
created_at INTEGER NOT NULL -- Unix 秒,排序与限流用
);
-- 已有部署的增量迁移:
-- ALTER TABLE messages ADD COLUMN ua TEXT;
-- ALTER TABLE messages ADD COLUMN country TEXT;