⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议
Skip to content

4.6 如何批量制造假数据——种子数据高级应用:多环境数据管理

认知重构

种子数据不只是"造假数据"——它是开发效率的倍增器,是测试质量的保障,是团队协作的基础。

种子数据的多重身份

子章节导航

章节主题核心问题
4.6.1幂等造数如何让种子脚本可以重复执行?
4.6.2测试清理测试前后的数据如何管理?
4.6.3数据脱敏如何安全使用生产数据做测试?

基础种子脚本回顾

typescript
// prisma/seed.ts
import { PrismaClient } from '@prisma/client'
import { faker } from '@faker-js/faker'

const prisma = new PrismaClient()

async function main() {
  // 创建用户
  const user = await prisma.user.upsert({
    where: { email: 'admin@example.com' },
    update: {},
    create: {
      email: 'admin@example.com',
      name: 'Admin',
      role: 'ADMIN'
    }
  })

  // 批量创建测试数据
  for (let i = 0; i < 10; i++) {
    await prisma.post.create({
      data: {
        title: faker.lorem.sentence(),
        content: faker.lorem.paragraphs(3),
        authorId: user.id
      }
    })
  }
}

main()
  .catch(console.error)
  .finally(() => prisma.$disconnect())

运行种子

bash
# 执行种子脚本
npx prisma db seed

# 重置数据库并执行种子
npx prisma migrate reset

本章小结

  • 种子数据服务于开发、测试、演示多种场景
  • 使用 upsert 实现幂等性
  • 使用 Faker 生成真实感的测试数据
  • 根据环境定制不同的数据策略