Drizzle 针对 Prisma 的扩展

如果您有一个现有的 Prisma 项目并想尝试 Drizzle 或逐步采用它,您可以使用我们的一流扩展,它将 Drizzle API 添加到您的 Prisma 客户端。这将允许您在重用现有数据库连接的同时,与 Prisma 查询一起使用 Drizzle。

如何使用

安装依赖

您需要安装 Drizzle 本身和一个生成器包,该包将从 Prisma 模式生成 Drizzle 模式。

npm
yarn
pnpm
bun
npm i drizzle-orm@latest
npm i -D drizzle-prisma-generator

更新您的 Prisma 模式

将 Drizzle 生成器添加到您的 Prisma 模式。output 是生成 Drizzle 模式 TS 文件的存放路径。

schema.prisma
generator client {
  provider = "prisma-client-js"
}

generator drizzle {
  provider = "drizzle-prisma-generator"
  output   = "./drizzle" // Where to put generated Drizle tables
}

// Rest of your Prisma schema

datasource db {
  provider = "postgresql"
  url      = env("DB_URL")
}

model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  name  String?
}

...

生成 Drizzle 模式

prisma generate

将 Drizzle 扩展添加到您的 Prisma 客户端

PostgreSQL
MySQL
SQLite
import { PrismaClient } from '@prisma/client';
import { drizzle } from 'drizzle-orm/prisma/pg';

const prisma = new PrismaClient().$extends(drizzle());

通过 prisma.$drizzle 运行 Drizzle 查询 ✨

为了使用 Drizzle 查询构建器,您需要 Drizzle 表的引用。您可以从生成器配置中指定的输出路径导入它们。

import { User } from './drizzle';

await prisma.$drizzle.insert().into(User).values({ email: '[email protected]', name: 'Søren' });
const users = await prisma.$drizzle.select().from(User);

限制