用途
该技能面向数据库相关的质量保障工作,覆盖迁移测试、数据完整性测试、种子数据管理、查询性能测试以及基于 Docker 的测试数据库搭建,帮助在 CI 中稳定地验证数据库层。
主要能力
迁移测试:对空数据库运行全部迁移并依据 information_schema 断言表和列存在且类型、可空性、默认值正确;测试回滚路径;测试迁移过程中的数据保留;检测迁移漂移。
数据完整性测试:断言 NOT NULL、UNIQUE、FOREIGN KEY、CHECK、ON DELETE CASCADE 等约束拒绝非法数据;用反连接查询检查孤儿记录;审计意图约束与实际约束的差距;校验数据类型(金额精度、VARCHAR 长度、时区时间戳)。
种子数据管理:工厂模式生成确定性记录;Prisma upsert 脚本按 SEED_ENV 切换 test/staging/demo 配置;事务回滚实现测试隔离。
查询性能测试:EXPLAIN ANALYZE 计划断言(Node Type 匹配 /Index/、执行时间低于阈值);pg_indexes 索引校验;慢查询检测;MongoDB 使用 explain('executionStats') 验证索引使用。
Docker 测试数据库:优先使用 Testcontainers(@testcontainers/postgresql 11.14+);也支持 docker-compose.test.yml(postgres:18-alpine、tmpfs、pg_isready 健康检查、非默认端口),并在 package.json 中串联 test:db:* 脚本。
使用方式
先检查 .agents/qa-project-context.md,若存在则直接使用并跳过已解答的问题。随后按迁移测试、完整性测试、种子数据、性能测试的流程执行:前向迁移用 prisma migrate deploy 验证,回滚用各迁移目录下的 down.sql(Prisma 无 migrate down,prisma migrate resolve --rolled-back 不是回滚工具)或 TypeORM 的 undoLastMigration()、Sequelize 的 sequelize-cli db:migrate:undo。漂移检测用 prisma migrate diff --from-migrations … --to-schema-datamodel … --exit-code 接入 CI。
适用场景
适用于需要对数据库 schema 变更、数据约束、种子数据和查询性能进行自动化验证的项目,尤其是使用迁移工具管理 schema 且希望在 CI 中捕获回归的团队。
限制
迁移回滚测试依赖工具是否提供回滚机制;Prisma 和 Drizzle 无内置 down 生成器,需手写逆向 SQL。性能测试不属于本技能范围,连接池调优与并发负载测试由 performance-testing 覆盖;对抗性输入由 security-testing 覆盖;大规模合成数据与 PII 脱敏由 test-data-management 覆盖;固定测试基础设施由 test-environments 覆盖。具体价格、平台支持等暂未提供。