Prisma
将 Better Auth 与 Prisma 集成。
Prisma ORM 是一个开源的数据库工具包,通过提供类型安全的查询构建器和直观的数据建模界面,简化了应用程序中的数据库访问和管理。
在开始之前,请确保您已经安装并配置了 Prisma。更多信息,请参见 Prisma 文档
安装
要使用 Prisma 适配器,您需要安装 @better-auth/prisma-adapter 包:
npm install @better-auth/prisma-adapter使用示例
您可以使用 Prisma 适配器如下连接到您的数据库。
import { betterAuth } from "better-auth";
import { prismaAdapter } from "better-auth/adapters/prisma";
import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
export const auth = betterAuth({
database: prismaAdapter(prisma, {
provider: "sqlite",
}),
});从 Prisma 7 开始,output 路径字段是必需的。如果您在 schema.prisma 文件中配置了自定义的输出路径(例如,output = "../src/generated/prisma"),请确保从该位置而非 @prisma/client 导入 Prisma 客户端。更多信息,请参见这里。
模式生成与迁移
Better Auth CLI 允许您基于 Better Auth 配置和插件生成或迁移数据库模式。
Prisma 模式生成 | Prisma 模式迁移 |
|---|---|
| ✅ 支持 | ❌ 不支持 |
npx auth@latest generate关联查询(实验性)
当 Better Auth 需要在单个查询中从多个表获取相关数据时,数据库关联查询非常有用。
诸如 /get-session、/get-full-organization 等端点极大地受益于此功能,
根据数据库延迟情况,性能提升可达 2 到 3 倍。
Prisma 适配器从 1.4.0 版本开始原生支持关联查询。
要启用此功能,需要在您的 auth 配置中将 experimental.joins 选项设置为 true。
import { betterAuth } from "better-auth";
export const auth = betterAuth({
experimental: { joins: true }
});请确保您的 Prisma 模式中已定义必要的关联关系。
如果在您的 Prisma 模式中看不到任何关联关系,您可以使用 @relation 指令手动添加,
或运行我们最新的 CLI 版本 npx auth@latest generate 来生成带有关联的 Prisma 模式。
其他信息
- 如果您正在寻找性能提升或相关技巧,请查看我们的 性能优化指南。
- 如何使用 Prisma ORM 结合 Better Auth 和 Next.js