PrismaClient 客户端 API
datasource
以编程方式覆盖 schema.prisma 文件中 datasource 块的属性
ts
import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient({
datasources: {
db: {
url: "file:./dev_qa.db",
},
},
});
datasourceUrl
以编程方式覆盖 schema.prisma 文件中的 datasource 块。
ts
import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient({
datasourceUrl: "postgresql://johndoe:randompassword@localhost:5432/mydb",
});
log
确定日志记录的类型和级别
ts
const prisma = new PrismaClient({
log: ["query", "info", "warn", "error"],
});
query
- 打印所有查询info
- 打印 info 级别的日志warn
- 打印警告error
- 打印错误
举例如下
- 返回结果就是
ts
prisma:info Starting a mysql pool with 17 connections.
prisma:query SELECT `prismatest3`.`emp`.`id`, `prismatest3`.`emp`.`name`, `prismatest3`.`emp`.`age`, `prismatest3`.`emp`.`job`, `prismatest3`.`emp`.`salary`, `prismatest3`.`emp`.`entrydate`, `prismatest3`.`emp`.`managerid`, `prismatest3`.`emp`.`dept_id` FROM `prismatest3`.`emp` WHERE 1=1
transactionOptions
- 事务选项
ts
const prisma = new PrismaClient({
transactionOptions: {
isolationLevel: Prisma.TransactionIsolationLevel.Serializable,
maxWait: 5000, // default: 2000
timeout: 10000, // default: 5000
},
});
- maxWait - Prisma 客户端等待从数据库获取事务的最长时间(以毫秒为单位)
- timeout - 交互式事务在被取消和回滚之前可以运行的最长时间(以毫秒为单位)
- isolationLevel - 事务的隔离级别