From 0ed03ac0952115af7aa98b498bf550b1c8466954 Mon Sep 17 00:00:00 2001 From: qing <1776177662@qq.com> Date: Sat, 22 Aug 2026 11:10:11 +0000 Subject: [PATCH] =?UTF-8?q?feat(db2):=20Users=20=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98=E6=A0=87=E8=AE=B0=20+=20Notes=20=E5=8F=AF=E8=A7=81?= =?UTF-8?q?=E6=80=A7/=E5=8F=AF=E7=BC=96=E8=BE=91=E6=80=A7=EF=BC=88patch=5F?= =?UTF-8?q?003=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - create_sqlite3.sql 全量建库脚本同步 is_admin / is_public / everyone_editable 三列 - 新增 patch_003_users_admin_notes_visibility.sql 存量库增量迁移 - 默认值保持向后兼容:非管理员、节点公开、人人可编辑 --- db2/scripts/create_sqlite3.sql | 18 ++++++++++++------ .../patch_003_users_admin_notes_visibility.sql | 17 +++++++++++++++++ 2 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 db2/scripts/patch_003_users_admin_notes_visibility.sql diff --git a/db2/scripts/create_sqlite3.sql b/db2/scripts/create_sqlite3.sql index 6193a0b..020a442 100644 --- a/db2/scripts/create_sqlite3.sql +++ b/db2/scripts/create_sqlite3.sql @@ -7,7 +7,8 @@ CREATE TABLE IF NOT EXISTS Users ( password_hash TEXT NOT NULL, create_at DATETIME DEFAULT CURRENT_TIMESTAMP, last_login DATETIME, - is_active BOOLEAN DEFAULT 1 + is_active BOOLEAN DEFAULT 1, + is_admin BOOLEAN NOT NULL DEFAULT 0 ); CREATE TABLE IF NOT EXISTS Notes ( @@ -18,14 +19,19 @@ CREATE TABLE IF NOT EXISTS Notes ( content TEXT NOT NULL, views INTEGER NOT NULL DEFAULT 0, created_at DATETIME, - updated_at DATETIME + updated_at DATETIME, + is_public BOOLEAN NOT NULL DEFAULT 1, + everyone_editable BOOLEAN NOT NULL DEFAULT 1 ); --- 旧版增量 +-- 旧版增量(存量库请按编号顺序执行对应 patch 脚本) -- ALTER TABLE Notes ADD COLUMN owner VARCHAR(128) DEFAULT 'Unknow'; --- ALTER TABLE Notes ADD COLUMN views INTEGER NOT NULL DEFAULT 0; -- patch_001 观看人数列 --- ALTER TABLE Notes ADD COLUMN created_at DATETIME; -- patch_002 创建时间 --- ALTER TABLE Notes ADD COLUMN updated_at DATETIME; -- patch_002 更新时间 +-- ALTER TABLE Notes ADD COLUMN views INTEGER NOT NULL DEFAULT 0; -- patch_001 观看人数列 +-- ALTER TABLE Notes ADD COLUMN created_at DATETIME; -- patch_002 创建时间 +-- ALTER TABLE Notes ADD COLUMN updated_at DATETIME; -- patch_002 更新时间 +-- ALTER TABLE Users ADD COLUMN is_admin BOOLEAN NOT NULL DEFAULT 0; -- patch_003 管理员标记 +-- ALTER TABLE Notes ADD COLUMN is_public BOOLEAN NOT NULL DEFAULT 1; -- patch_003 是否公开(默认公开) +-- ALTER TABLE Notes ADD COLUMN everyone_editable BOOLEAN NOT NULL DEFAULT 1; -- patch_003 是否人人可编辑(默认人人可编辑) -- Notes 索引:get_notes 按 pid 查子节点、所有权校验按 owner(patch_001 并入) CREATE INDEX IF NOT EXISTS idx_notes_pid ON Notes(pid); diff --git a/db2/scripts/patch_003_users_admin_notes_visibility.sql b/db2/scripts/patch_003_users_admin_notes_visibility.sql new file mode 100644 index 0000000..954c7c5 --- /dev/null +++ b/db2/scripts/patch_003_users_admin_notes_visibility.sql @@ -0,0 +1,17 @@ +-- 补丁 003:Users 管理员标记 + Notes 可见性/可编辑性 +-- 数据库类型: SQLite +-- 依赖: create_sqlite3.sql(或等价 schema)已执行,且 patch_001 / patch_002 已按序执行 +-- 幂等性: ADD COLUMN 为一次性迁移,重复执行会报 "duplicate column name", +-- 请按迁移编号顺序执行一次。 +-- +-- 语义(默认值向后兼容现有行为): +-- Users.is_admin 是否管理员,默认 0(普通用户) +-- Notes.is_public 节点是否公开可读,默认 1(公开,与现状一致) +-- Notes.everyone_editable 是否任何人都能编辑,默认 1(人人可编辑) + +-- ── Users 新增管理员标记 ───────────────────────────────────────────── +ALTER TABLE Users ADD COLUMN is_admin BOOLEAN NOT NULL DEFAULT 0; + +-- ── Notes 新增可见性 / 可编辑性 ────────────────────────────────────── +ALTER TABLE Notes ADD COLUMN is_public BOOLEAN NOT NULL DEFAULT 1; +ALTER TABLE Notes ADD COLUMN everyone_editable BOOLEAN NOT NULL DEFAULT 1;