You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 04:51:12