Drizzle Prisma 扩展程序

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

如何使用

安装依赖

你需要安装 Drizzle 本身以及一个生成器包,该生成器包将从 Prisma 模式创建 Drizzle 模式。

npm
yarn
pnpm
bun
npm i drizzle-orm@latest -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: 'sorenbs@drizzle.team', name: 'Søren' });
const users = await prisma.$drizzle.select().from(User);

限制