Files
dbtool-cli-v1/ACCEPTANCE_CHECKLIST.md
Paperclip CTO 7424491944
Some checks failed
release-smoke / macos-13 / x86_64-apple-darwin (push) Has been cancelled
release-smoke / ubuntu-latest / x86_64-unknown-linux-gnu (push) Has been cancelled
release-smoke / windows-latest / x86_64-pc-windows-msvc (push) Has been cancelled
chore: bootstrap independent git workflow
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-26 03:49:29 +00:00

130 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# dbtool-cli-v1 验收检查表(初版)
## 当前结论
- 当前环境中,项目配置声明的主工作区路径为 `/workspace/repo/dbtool-cli-v1`
- QA 首次盘点时,该路径原本不存在;当前已经补齐 Rust workspace、CLI、demo seed 资产、smoke runbook 和 release-smoke workflow 基线。
- 2026-03-26 本地 Linux 已执行CLI `--help``--version`、SQLite `connect` / `inspect` / `query` / `export`、SQLite seed 重放、Linux artifact checksum 与 artifact smoke。
- 2026-03-26 当前 QA runner 再次确认:`node v24.14.0` 可用,`docker``cargo` 均不存在;因此本机只能继续复核预编译二进制与 SQLite 路径,不能在此处完成 PostgreSQL / MySQL 的 Docker-backed smoke。
- 当前检查表仍不能直接宣布通过,因为 PostgreSQL / MySQL 的 Docker-backed smoke 与 GitHub 的 macOS / Windows release runner 还未在本 agent 环境实测。
## 与 PM / CTO 的当前对齐依据
- PM 对齐来源:项目说明与任务描述中定义的范围和完成标准。
- CTO 对齐来源:项目说明中的工程边界与跨平台目标。
- 待补强项:来自产品说明任务和架构任务的正式共享文档落地后,需要回填到本检查表。
## 发布门槛
- [x] 项目仓库已落地到可访问工作区,路径可重复获取
- [x] 安装、启动、demo、seed、smoke、Docker 路径存在且写入文档
- [ ] PostgreSQL、MySQL、SQLite 三类数据库均有可执行验证步骤
- [x] macOS、Linux、Windows 的期望行为已记录
- [x] 失败路径可复现、可记录、可区分严重级别
- [ ] 验收证据可由非开发者重复执行
## 基础可运行性
- [x] 仓库可拉起或可构建
- [x] CLI 二进制或运行命令已定义
- [x] `--help` 输出稳定
- [x] 版本信息可读取
- [ ] 缺失依赖时返回可理解错误
## 启动 / Demo / Seed / Smoke / Docker
- [x] 启动说明存在且从零可执行
- [x] demo 数据准备步骤存在
- [x] seed 步骤存在且幂等
- [x] smoke 脚本存在且可一键执行
- [ ] Dockerfile 或 compose 路径存在并可运行
- [x] 上述路径都有预期输出与失败输出说明
## 连接验证
### PostgreSQL
- [ ] 有效连接参数可成功连接
- [ ] 无效 host / port / database / user / password 会失败
- [ ] 网络不可达时返回清晰错误
- [ ] 权限不足时返回清晰错误
### MySQL
- [ ] 有效连接参数可成功连接
- [ ] 无效 host / port / database / user / password 会失败
- [ ] 网络不可达时返回清晰错误
- [ ] 权限不足时返回清晰错误
### SQLite
- [x] 有效文件路径可成功连接
- [x] 文件不存在时返回清晰错误
- [x] 路径无权限时返回清晰错误
- [x] 非数据库文件时返回清晰错误
## Schema Introspection
- [ ] 可列出 schema适用时
- [x] 可列出 table / view
- [x] 可查看列定义
- [ ] 空 schema / 空数据库表现明确
- [ ] 不支持对象类型时提示明确
## 查询执行
- [x] 可执行基础查询
- [x] 可执行带条件查询
- [x] 空结果集表现正确
- [x] 语法错误会失败且可定位
- [ ] 超时 / 长查询路径可观测
- [x] 参数化查询行为明确
## 导出流程
- [x] 导出命令存在
- [x] 输出路径规则明确
- [x] 目标文件已存在时行为明确
- [ ] 空结果导出行为明确
- [x] 编码、换行、分隔符规则明确
- [x] 导出失败时无静默成功
## 边界与回归关注
- [ ] 大结果集不会直接崩溃
- [x] 特殊字符 / Unicode 结果可处理
- [ ] NULL 值处理一致
- [ ] 时区 / 日期时间输出规则明确
- [x] 数据库间差异有记录
- [ ] 回归验证步骤可重复执行
## 2026-03-26 执行证据
- 本地 Linux`target/release/dbtool --help``target/release/dbtool --version`
- SQLite happy path`connect``inspect --schema main``inspect --schema main --table tickets``query``export --format csv|json`
- SQLite failure pathmissing file、permission denied、missing table、multi statement blocked、export overwrite blocked
- SQLite `connect` failure pathnon-db file 现在返回非零退出码,并输出 `connection failed: file is not a database`
- SQLite seed`examples/scripts/bootstrap-sqlite.sh` 使用 Node fallback 成功重放
- Linux artifact`dist/dbtool-0.1.0-x86_64-unknown-linux-gnu.tar.gz` checksum 通过,解包后二进制 `--help` / `--version` 通过
- 当前 runner 能力盘点:`node v24.14.0` 存在;`sqlite3``python3``docker``cargo` 不存在
- 当前 runner 复核:`examples/scripts/bootstrap-sqlite.sh``target/release/dbtool connect --driver sqlite ...``inspect --schema main``query --file examples/sql/sqlite/happy_path_query.sql` 再次通过
- 当前 runner 导出复核:已有文件时 `export` 明确拒绝覆盖;改用 `examples/tmp/qa-export-2.csv` 后导出 `4` 行成功,内容与 `EXPECTED_RESULTS.md` 一致
## 平台矩阵
| 场景 | Linux | macOS | Windows | 备注 |
| --- | --- | --- | --- | --- |
| 安装 / 构建 | 本地 Linux 已验证 | 待验证 | 待验证 | GitHub workflow 已配置macOS / Windows runner 未在当前环境执行 |
| CLI 启动 | 本地 Linux 已验证 | 待验证 | 待验证 | `--help` / `--version` 已纳入 release-smoke workflow |
| PostgreSQL | 待验证 | 待验证 | 待验证 | 需 Docker 环境完成真实 smoke |
| MySQL | 待验证 | 待验证 | 待验证 | 需 Docker 环境完成真实 smoke |
| SQLite | 本地 Linux 已验证 | 待验证 | 待验证 | 本地 query / export happy path 已验证 |
| 导出流程 | 本地 Linux 已验证 | 待验证 | 待验证 | CSV / JSON 本地已验证,跨平台产物仍待 CI 实测 |
## 当前阻塞
- 阻塞 1当前 agent 环境没有 `docker` 可执行文件,因此无法在此处实测 PostgreSQL / MySQL 的 `connect` / `inspect` / `query` / `export` smoke。
- 阻塞 2当前 agent 环境无法执行 GitHub 的 macOS / Windows runner因此 release artifact matrix 还缺跨平台实测证据。
- 阻塞 3当前 agent 环境也没有 `cargo`,因此即使迁入宿主机方案,仍需预编译二进制或额外准备 Rust toolchain。
- 阻塞 4发布 workflow 已落地,但仍需真实 CI 运行记录与 QA 证据来关闭发布前验收风险。