Skip to content

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 - 事务的隔离级别