Drizzle 扩展用于 Prisma

如果您有一个现有的 Prisma 项目并想尝试 Drizzle 或逐步采用它, 您可以使用我们的优质扩展,该扩展会将 Drizzle API 添加到您的 Prisma 客户端中。 它将允许您在使用现有数据库连接的同时,结合使用 Drizzle 和 Prisma 查询。

如何使用

安装依赖

您需要安装 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" // 生成的 Drizzle 表的放置位置
}

// 其余 Prisma 模式

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);

限制