- 迁移 0025_memory_ingest_reviews(幂等,既有部署重跑不炸/不丢行) - GC:保留期 720h + 条数上限 10 万行,挂进审查服务生命周期(Start 起 / Stop 停 / 启动先扫) - 过期即硬删(RevertMerged 只读 memory_items,删留痕不损失回滚能力) - 偏离一处并给理由:表只留 created_at(先例 0017;append-only;加 updated_at 需三份 DDL 真源) - 3 个变异自检(边界 <=/元组比较方向/Retention=0)
15 lines
1.0 KiB
SQL
15 lines
1.0 KiB
SQL
-- 0025 的回滚:先删索引、再删表(与 0019 / 0021 的回滚同一顺序口径)。
|
|
--
|
|
-- 删留痕**不影响任何一条记忆的可逆性**:留痕描述的那次软合并早已落在
|
|
-- `memory_items` 上(`status` / `merged_into` / `merged_from` / `merge_count`),
|
|
-- 回滚一次合并(`Store.RevertMerged`)只读 `memory_items`(见
|
|
-- internal/runtime/memory/preinsert_store.go 的 selectMergedIntoSQL),
|
|
-- 从不读本表。代价只是「这次决定当初为什么这么判」的依据丢失,属降级可接受。
|
|
--
|
|
-- 且本表由记忆存储自举(`NewStore` → `ensureIngestReviewSchema`):回滚删表之后,
|
|
-- 下次启动会按同一 DDL 重建一张空表,不需要人工干预(这也是本表与
|
|
-- memory_items 这类「用户数据表」的关键区别 —— 它是派生的观测留痕,不是正文)。
|
|
DROP INDEX IF EXISTS idx_memory_ingest_reviews_created_at;
|
|
DROP INDEX IF EXISTS idx_memory_ingest_reviews_item_id;
|
|
DROP TABLE IF EXISTS memory_ingest_reviews;
|