📝 docs: 统一 PostgreSQL 主库并固化索引命名约定

- 新增 ADR-024:服务端关系主库统一 PostgreSQL,不设 SQLite 档(pgvector 与中文全文无法在 SQLite 承载,双档必然残缺或第二实现);端侧离线缓存不受约束
- AGENTS.md:权威事实源与部署句更新;8.6 固化 pk_/uk_/idx_/fk_ 索引命名约定
- system-architecture、data-architecture、memory-and-knowledge、roadmap WP-01、handoff(决策 29)同步清理 SQLite 引用
This commit is contained in:
chenxin committed 2026-09-09 21:14:10 +08:00
1 parent 42513d13c6
commit 5da1efe921
7 files changed
+27 -8

No files matched your search

+18
View File
@@ -379,3 +379,21 @@ UUIDv7 为高写入关系表提供索引局部性和大致创建顺序;请求
- 阶段记忆(`_phase_memory`)持久化每阶段输入输出摘要,供审计、幂等与用户可见的演化谱系。
- 触发条件为可配置阈值组合并逐角色设频率上限;用户手动触发始终可用,关闭大周天后不再触发新 cycle,已有历史保留。
- "天工"(任务对象)与"小周天"(运转过程)为同一 `run` 的两个视角,不新增运行时对象;`run` 工程值与 `run_` 前缀不变。
## ADR-024:关系主库统一 PostgreSQL,不设 SQLite 档
**状态**:采纳
**决策**
服务端关系主库在开发、测试、个人自托管与正式部署中统一使用 PostgreSQL;不提供 SQLite 主库档。Alembic 迁移只在 PostgreSQL 上定义与验证。SQLite 不作为服务端主库出现;端侧(Tauri)加密离线缓存属客户端本地存储,不受本决策约束。
**理由**
1.0 记忆与知识检索依赖 PostgreSQL 全文(中文分词扩展)与 pgvector 语义检索;SQLite 档无法承载,双档必然功能残缺或形成第二实现,违反"单一真源"与最小实现原则。双方言还使迁移与测试矩阵翻倍(JSONB/TEXT、向量、并发写锁、部分索引差异)。容器时代个人自托管以 Docker Compose 附带 PostgreSQL 容器即可,运维成本可接受;开发与 CI 用本地容器或嵌入式 PostgreSQL 保持一致性。
**后果**
- 开发环境用 `docker compose`(或嵌入式 PostgreSQL)启动数据库;测试统一在 PostgreSQL 上运行,不用 SQLite 内存库替代,避免方言差异掩盖缺陷。
- 自托管两档(单机/标准服务器)均含 PostgreSQL 容器;单机档降低的是资源规格,不是能力面。
- 迁移与性能优化只需针对 PostgreSQL(JSONB、pgvector、tsvector、事务性 DDL、行级锁);索引命名按工程规范执行(见 AGENTS.md 第 8.6 节)。