无法在T3 Stack中通过Prisma连接Turso数据库
在T3 Stack中解决Prisma连接Turso时更新Client的问题
核心排查与修复步骤
确认依赖安装完整
确保@prisma/adapter-libsql和@libsql/client已正确安装,执行对应包管理器命令:# npm npm install @prisma/adapter-libsql @libsql/client # pnpm pnpm add @prisma/adapter-libsql @libsql/client # yarn yarn add @prisma/adapter-libsql @libsql/client验证环境变量配置
检查.env文件中的TURSO_DATABASE_URL和TURSO_AUTH_TOKEN是否与Turso控制台提供的信息完全一致,无拼写错误。在T3 Stack中,需确保这两个变量已在env.mjs中完成类型配置,保证环境变量能被正确加载。重新生成Prisma Client
修改适配器配置后必须重新生成Client,执行:npx prisma generate检查版本兼容性
保证prisma、@prisma/client和@prisma/adapter-libsql三者版本完全匹配,版本不兼容是常见的初始化失败原因。测试Turso基础连接
先单独验证libsql是否能正常连接Turso,排除数据库端问题:import { createClient } from '@libsql/client'; const testTursoConnection = async () => { try { const client = createClient({ url: process.env.TURSO_DATABASE_URL!, authToken: process.env.TURSO_AUTH_TOKEN!, }); const res = await client.execute('SELECT 1'); console.log('Turso连接正常:', res); } catch (err) { console.error('Turso连接失败:', err); } }; testTursoConnection();优化T3 Stack中的Prisma实例创建
T3 Stack开发环境下热重载会重复创建Prisma实例,建议改成单例模式:import { PrismaClient } from '@prisma/client'; import { PrismaLibSQL } from '@prisma/adapter-libsql'; import { createClient } from '@libsql/client'; let prisma: PrismaClient; if (process.env.NODE_ENV === 'production') { const libsql = createClient({ url: process.env.TURSO_DATABASE_URL!, authToken: process.env.TURSO_AUTH_TOKEN!, }); const adapter = new PrismaLibSQL(libsql); prisma = new PrismaClient({ adapter }); } else { if (!global.prisma) { const libsql = createClient({ url: process.env.TURSO_DATABASE_URL!, authToken: process.env.TURSO_AUTH_TOKEN!, }); const adapter = new PrismaLibSQL(libsql); global.prisma = new PrismaClient({ adapter }); } prisma = global.prisma; } export default prisma;
若问题仍存在
请提供终端输出的具体错误信息(如连接超时、权限报错、适配器初始化失败等),以便进一步定位问题。
内容的提问来源于stack exchange,提问作者Manuel Ade
相关产品推荐
相关产品推荐

