fix: 群写操作在事务内复核并去重建群成员

This commit is contained in:
Nixevol
2026-09-30 16:22:38 +08:00
parent 7c926a0904
commit ad4f13193c
4 changed files with 648 additions and 159 deletions
@@ -0,0 +1,19 @@
-- U-02: group_members 增加指向 groups 的外键,避免解散后残留孤儿行。
-- 本分支基于 C-04 时最大迁移号为 0002,按 TASKS 4.2 取 0003。
DELETE FROM group_members WHERE group_id NOT IN (SELECT id FROM groups);
CREATE TABLE group_members_new (
group_id TEXT NOT NULL REFERENCES groups(id) ON DELETE CASCADE,
endpoint_id TEXT NOT NULL,
joined_at INTEGER NOT NULL,
PRIMARY KEY (group_id, endpoint_id)
);
INSERT INTO group_members_new (group_id, endpoint_id, joined_at)
SELECT group_id, endpoint_id, joined_at FROM group_members;
DROP TABLE group_members;
ALTER TABLE group_members_new RENAME TO group_members;
CREATE INDEX idx_group_members_endpoint ON group_members(endpoint_id);