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 个
太多的链接 会造成性能耗损,并且数据库会报错