From 955d7514036d08697f4668064022222df21e69bd Mon Sep 17 00:00:00 2001 From: Redamancy <848238014@qq.com> Date: Tue, 8 Sep 2026 18:03:05 +0800 Subject: [PATCH] =?UTF-8?q?:books:=20docs(roadmap):=20=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E7=9C=9F=E5=AE=9E=E9=9B=86=E6=88=90=E6=B5=8B=E8=AF=95=E5=9F=BA?= =?UTF-8?q?=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/roadmap-v0.3.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/docs/roadmap-v0.3.md b/docs/roadmap-v0.3.md index 8f25afb..12b196d 100644 --- a/docs/roadmap-v0.3.md +++ b/docs/roadmap-v0.3.md @@ -9,17 +9,28 @@ ## 当前基线 -基线以 `main` 的 `2803b40` 为准;该提交包含最近的治理和仓库元数据维护,运行时代码 -基线仍包含 `f885f57` 的 PostgreSQL schema 存在性修复: +基线随 `main` 更新;本次证据快照以 `7b07599`(PR #133 合并)为准,运行时代码 +仍包含 `f885f57` 的 PostgreSQL schema 存在性修复: - 已支持 MySQL、PostgreSQL 和 SQLite 的连接、只读查询和统一元数据契约。 - 已提供原子代码生成、schema 图算法、MCP Apps、AI 语义增强和基础可观测性。 -- `PYTHONPATH=src python -m pytest -q tests/unit`:660 passed。 +- `PYTHONPATH=src python -m pytest tests/unit/ -q`:668 passed(Windows 11、Python 3.10.1)。 - SQLite 元数据基准已固定输入和查询次数;`describe_table` 当前每次包含 7 次 SQL 往返,其中第 7 次用于识别 `AUTOINCREMENT`。 -- CI 已用 Testcontainers 启动 MySQL 8.0 和 PostgreSQL 16,并覆盖 MySQL fixture 连通性及 - PostgreSQL 类型映射;尚未覆盖两个真实数据库上的完整 introspection、schema 隔离和生成链路。 +- CI 已用 Testcontainers 启动 MySQL 8.0 和 PostgreSQL 16-alpine。PR #133 通过真实 + `ConnectionManager -> DatabaseIntrospector.describe_table` 覆盖两方言的主键、外键、复合 + 索引、NOT NULL 和自增语义;PostgreSQL 另以非 public schema 与 public 同名表验证显式 + schema 隔离。容器化代码生成链路、SQLite 的集成级等价 fixture 和权限组合仍未覆盖。 - 当前没有可比较的真实 PostgreSQL/MySQL 延迟、吞吐或内存基准;任何后续 PR 必须先记录实验数据,再讨论优化结果。 +### P0 进展记录 + +- **真实数据库集成矩阵(进行中)**:#133 已完成 MySQL 8.0 / PostgreSQL 16-alpine 的最小 + metadata contract 和 PostgreSQL schema 隔离回归。剩余验收项是将 SQLite 纳入同层级的 + fixture 叙述、在容器数据库上验证代码生成输入/输出链路,以及记录权限和版本边界。 +- **查询与元数据契约收口(未立项)**:真实 metadata 查询已能暴露驱动参数化差异;#133 + 发现并修复了 psycopg2 中 `LIKE 'nextval(%%'` 的 literal-percent 转义。该成果不代表查询、空结果 + 和只读限制的完整跨方言合同已经完成。 + ## 优先级路线 优先级只表示依赖关系,不代表预先承诺实现结果。每项工作开始前都要创建独立 Issue。