跳转到内容

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

實用資源