# dbtool-cli-v1 PostgreSQL / MySQL runtime smoke 环境计划 日期:2026-03-26 ## 背景 - 当前仓库已具备 `docker-compose.demo.yml`、PostgreSQL / MySQL bootstrap 脚本、fixtures 与 `SMOKE_RUNBOOK.md` - QA 已完成 Linux 本地 SQLite smoke,但 PostgreSQL / MySQL runtime smoke 仍因当前 runner 无 Docker 而阻塞 - 当前问题的根因是**执行宿主缺失**,不是产品功能缺失 ## 决策 采用**宿主机执行 + Docker Compose 临时数据库**作为当前标准方案。 - 推荐说明见 `QA_RUNTIME_ENVIRONMENT.md` - 不采用长期宿主机数据库作为主路径 - 不在当前阶段为 `local-db-codex` 增加 Docker runtime ## 第一轮职责 - 后端:保持 compose / seed / SQL 输入稳定 - QA:在 Docker-capable host 执行 PostgreSQL / MySQL smoke 并回填证据 - CTO:完成方案裁决、任务拆解与阻塞升级 - 前端:保持 gated,不进入当前执行链路 ## 完成标准 - QA 能按 `QA_RUNTIME_ENVIRONMENT.md` 与 `SMOKE_RUNBOOK.md` 完成 PostgreSQL smoke - QA 能按 `QA_RUNTIME_ENVIRONMENT.md` 与 `SMOKE_RUNBOOK.md` 完成 MySQL smoke - 若执行仍失败,阻塞必须明确归因到宿主、Docker、二进制或产品缺陷之一 ## 2026-03-26 当前执行记录 - 当前 QA runner 已验证存在预编译 `target/release/dbtool`,且 `--help` / `--version` 正常 - 当前 QA runner 可通过 `examples/scripts/bootstrap-sqlite.sh` 复核 SQLite happy path - 当前 QA runner 不存在 `docker`,因此无法拉起 `docker-compose.demo.yml` - 当前 QA runner 不存在 `cargo`,因此宿主机执行时需提前准备 Rust toolchain 或直接分发预编译二进制 - 同日 [CMP-17](/CMP/issues/CMP-17#comment-0cd53e93-25a5-456b-8dba-31ea098c2aa8) 已回填宿主机执行结果:PostgreSQL happy path 与 MySQL happy path 已通过,说明推荐方案已被实际验证 - 剩余跟进行动:MySQL Unicode patched-run 已关闭当前产品缺陷判断;继续补齐宿主机执行的 binary path / commit 追溯信息与 macOS / Windows release runner 证据