跳转到内容

Prisma

Prisma 是 TypeScript 的 ORM,允许您在 schema.prisma 文件中定义数据库架构和模型,然后生成可用于从后端与数据库交互的类型安全客户端。

请查看 什么是 Prisma?,更好地了解 Next.js 是什么及其工作原理。

Prisma 架构

每个使用 Prisma ORM 工具包中的工具的项目都以 Prisma schema file 开始。Prisma 架构允许开发人员以直观的数据建模语言定义其应用程序模型。 它还包含与数据库的连接并定义一个 生成器

关系型数据库

datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
author User? @relation(fields: [authorId], references: [id])
authorId Int?
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
}

MongoDB

datasource db {
provider = "mongodb"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
model Post {
id String @id @default(auto()) @map("_id") @db.ObjectId
title String
content String?
published Boolean @default(false)
author User? @relation(fields: [authorId], references: [id])
authorId String @db.ObjectId
}
model User {
id String @id @default(auto()) @map("_id") @db.ObjectId
email String @unique
name String?
posts Post[]
}

主要特性

  • Prisma Client: 适用于 Node.js 和 TypeScript 的自动生成且类型安全的查询构造器
  • Prisma Migrate: 迁移系统
  • Prisma Studio: 用于查看和编辑数据库中的数据的 GUI

实用资源