Blitz 尚在 beat 阶段! 🎉 预计会在今年的 Q3 季度发布 1.0
Back to Documentation Menu

数据库种子

Topics

Jump to a Topic

关于

默认情况下,Blitz 有一个 db/seeds.ts,你可以在其中添加测试数据以快速初始 化你的环境。

这对于在将数据库搞砸后或在充满旧测试数据时重建数据库非常有用。好的种子还可 以对新人的加入更友好(否则,需要到页面中创建一个新用户,然后为它们创建一些 任务,还需确保至少创建一个项目...)。唯一的要求是此文件需要默认导出。

示例

  1. 假设这是你的 db/schema.prisma 示例:
model Project {
  id        Int      @default(autoincrement()) @id
  name      String
  tasks     Task[]
}

model Task {
  id          Int      @default(autoincrement()) @id
  name        String
  project     Project  @relation(fields: [projectId], references: [id])
  projectId   Int
}
  1. 新增 db/seeds.ts
import db from "./index"

const seed = async () => {
  const project = await db.project.create({ data: { name: "FooBar" } })

  for (let i = 0; i < 5; i++) {
    await db.task.create({
      data: {
        name: `Task: ${i}`,
        project: {
          connect: {
            id: project.id,
          },
        },
      },
    })
  }
}

export default seed
  1. 现在只需运行 blitz db seed 就完成了。你应该可以在数据库中设置了全新的 数据。

贴士:使用像 chancefaker.js 的库来生成更真实的数据(名 称、住址、邮箱、地址、日期甚至 lorem ipsusm)


Idea for improving this page? Edit it on GitHub.