用途
Data Seeding & Fixtures Builder 用于为开发和测试生成真实感、确定性的种子数据。它围绕 Prisma 与 @faker-js/faker 组织种子脚本、工厂函数、fixtures 与数据库重置脚本,帮助在不同环境中快速填充数据库。
主要能力
- 种子数据策略:在 prisma/seed.ts 中清理已有数据并批量创建用户、订单等记录。
- 工厂函数:为每个模型提供可复用的工厂类,支持 create、createMany 以及 createAdmin 等便捷方法,并可传入 email、name、role 等覆盖选项。
- 真实感 fixtures:以静态数组定义产品等固定数据,再通过映射批量写入数据库。
- 确定性种子:通过 faker.seed(12345) 固定随机种子,使每次生成的数据一致,便于测试复现。
- 关系构建:在创建订单时关联用户与产品,并生成订单项,维护外键完整性。
- 环境专属种子:按 NODE_ENV 区分 development、staging、testing,分别生成少量易调试、中等规模真实场景或最小可预测的数据。
- 数据库重置脚本:使用 PostgreSQL 的 session_replication_role 与 TRUNCATE ... CASCADE 清空所有表(跳过 _prisma_migrations),随后可重新播种。
- E2E 测试 fixtures:基于 Playwright 的 base.extend 定义 authenticatedUser 与 products fixtures,在测试中自动创建数据并在结束后清理。
- npm 脚本:提供 db:seed、db:seed:dev、db:seed:staging、db:reset、db:reset:test 等命令。
使用方式
在 Prisma 项目中引入该技能提供的代码结构:编写 prisma/seed.ts 作为入口,按环境调用对应种子函数;为每个模型创建 factories 目录下的工厂类;在 fixtures 目录定义静态数据;在 scripts/reset-db.ts 中实现重置逻辑;在 package.json 中配置上述脚本。测试中可通过 Playwright fixtures 注入预置数据。
适用场景
适用于需要为本地开发、预发布环境或自动化测试准备数据库数据的项目,尤其是使用 Prisma 与 PostgreSQL 的 Node.js/TypeScript 应用,以及需要确定性数据以复现测试结果的 E2E 测试场景。
限制
资料未提供该技能对数据库类型(除 PostgreSQL 外)、Prisma 版本、faker 版本的具体兼容范围,也未说明安装方式、收费模式或平台支持情况,这些信息暂未提供。