Skip to content

PrismaClient 客户端

PrismaClient(三部分)

ts

// .schema.prisma 设置数据库
datasource db {
  url      = env("DATABASE_URL")
  provider = "mysql" // 可以换成其他的 例如 postgresql
}

// .schema.prisma PrismaClient provider不用改
// 保存的prisma地址 output() 对应后续引用的路径
generator client {
  provider = "prisma-client-js"
  output   = "../src/generated/prisma"
}
// 数据库模型类
model User {
  id        Int      @id @default(autoincrement())
  createdAt DateTime @default(now())
  email     String   @unique
  name      String?
}

PrismaClient(参数)

ts
generator client {
  // Required
  provider = "prisma-client"
  output   = "../src/generated/prisma"

  // Optional
  engineType             = "client"
  runtime                = "nodejs"
  moduleFormat           = "esm"
  generatedFileExtension = "ts"
  importFileExtension    = "ts"
}
  • output: 生成文件的地址(必需)

  • engineType: 引擎类型(可选) 默认是 client

  • runtime: 运行时(可选) 默认是 nodejs odejs、deno、bun、workerd(别名 cloudflare)、vercel-edge(别名 edge-light)、react-native。

  • moduleFormat: 模块格式(可选) 默认是 esm,确定使用 import.meta.url 还是 __dirname

  • generatedFileExtension: 生成文件扩展名(可选) 默认是 ts

  • importFileExtension: 导入文件扩展名(可选) 默认是 ts

PrismaClient 实例化

  • 查询的时候会用到
ts
// 对应的output地址
import { PrismaClient } from "./generated/client";
const prisma = new PrismaClient();

地址池

默认情况 数据库连接池是 cpu2+1 举个例子 要是 2 核就是 22+1=5,一共会创建 5 个

太多的链接 会造成性能耗损,并且数据库会报错