使用PrismaAdapter与Authjs持久化数据时的Accelerate配置错误排查
解决PrismaAdapter + Auth.js的Accelerate初始化错误
错误核心原因是你的Prisma客户端没有正确启用Accelerate扩展,以下是分步解决方法:
1. 安装Prisma Accelerate依赖
如果还没安装,先执行:
npm install @prisma/accelerate
2. 修改Prisma客户端初始化代码(lib/prisma.ts)
确保你的prisma实例使用withAccelerate()扩展:
import { PrismaClient } from "@prisma/client"; import { withAccelerate } from "@prisma/extension-accelerate"; const prisma = new PrismaClient().$extends(withAccelerate()); export default prisma;
3. 修正auth.ts中的类型断言
修改后的prisma实例已经是正确类型,不需要额外断言,auth.ts可以简化为:
import { PrismaAdapter } from "@auth/prisma-adapter"; import NextAuth from "next-auth"; import GitHub from "next-auth/providers/github"; import prisma from "./lib/prisma"; export const { handlers, signIn, signOut, auth } = NextAuth({ adapter: PrismaAdapter(prisma), providers: [GitHub], session: { strategy: "database" }, secret: process.env.AUTH_SECRET, });
4. 验证环境变量
确保你的.env文件中使用的是Prisma Accelerate提供的连接字符串,格式类似:
DATABASE_URL="prisma://accelerate.prisma-data.net/?api_key=your_api_key"
完成以上步骤后,重新启动应用,错误应该会被解决。
内容的提问来源于stack exchange,提问作者himu73
相关产品推荐
相关产品推荐

