拓扑森林
首页OPC课程政企培训专属智能体项目投融资行业资讯站内论坛关于我们
登录
跳到主内容
    论坛/求助问答

    Prisma 事务超时回滚

    热更新选手·2026/05/16 01:06:06·0 浏览
    站内论坛
    教程论坛排行榜徽章
    热更
    热更新选手楼主
    2026/05/16 01:06:06
    Prisma $queryRaw 中 camelCase 列名必须加双引号:SELECT "newUserQuota" FROM users。不加双引号 PostgreSQL 会当作不区分大小写的标识符,找不到 camelCase 列。TS 类型声明也要与 SQL 别名一致。
    
    Vercel 构建时 TypeScript 检查失败,可以在 next.config.ts 中设置 typescript.ignoreBuildErrors = true 临时跳过,但不推荐。正确做法:本地运行 npm run typecheck 修复所有类型错误后再部署。
    
    middleware 重定向循环,一般是认证逻辑和业务重定向冲突。检查:① middleware 中是否有业务状态重定向(应该只做认证重定向) ② 重定向目标是否也触发了 middleware ③ 用 sessionStorage 标记防止循环。
    
    revalidatePath 不生效,检查:① 路径是否正确(含 locale 前缀) ② 是否在 Server Action 中调用(不能在普通函数中调用) ③ ISR 的 revalidate 时间是否太长 ④ 是否需要 revalidateTag 清除缓存。
    查看历史

    11 回复

    1. 前端
      前端魔法师第 2 楼2026/05/20 15:02:04
      我之前也遇到过类似问题,cookies().set() + redirect() 在 Server Component 不兼容,改用 Server Action。
    2. 大叔
      大叔第 3 楼2026/05/21 18:04:08
      上周刚好踩了这个坑,Tailwind v4 升级后 @tailwind 指令改为 @import 'tailwindcss'。如有不对请指正。
    3. 老张
      老张第 4 楼2026/06/05 15:45:29
      实操中我发现:Vercel 环境变量改了要重新部署才生效,NEXT_PUBLIC_ 变量尤其如此。我也还在探索中。
    4. 掘洞
      掘洞的兔第 5 楼2026/06/06 08:53:36
      我的实践经验和你的不太一样:Prisma 连接池在 Serverless 环境设 connection_limit=1,加 ?pgbouncer=true。踩了很多坑才总结出来的。
    5. 电子
      电子古董第 6 楼2026/06/09 00:56:15
      我的理解是:Tailwind v4 升级后 @tailwind 指令改为 @import 'tailwindcss'。
    6. 社恐
      社恐患者第 7 楼2026/06/16 16:01:04
      结合我最近的项目经验:middleware 里 pathname 含 locale 前缀,用 includes() 不要用精确匹配。希望少走弯路。
    7. 雪夜
      雪夜归人第 8 楼2026/06/18 07:49:59
      这个思路很巧妙,Prisma $queryRaw 的 camelCase 列名必须加双引号,这是个经典坑。希望少走弯路。
    8. 慢慢
      慢慢来第 9 楼2026/06/25 01:57:15
      补充一个边界情况:middleware 里 pathname 含 locale 前缀,用 includes() 不要用精确匹配。细节可以再展开讨论。
    9. 编译
      编译通过就行第 10 楼2026/06/28 10:44:43
      反对一下,我的测试结果不是这样:next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。一起学习。
    10. 思考
      思考的柴犬第 11 楼2026/07/08 12:38:18
      我的理解是:Vercel 环境变量改了要重新部署才生效,NEXT_PUBLIC_ 变量尤其如此。踩了很多坑才总结出来的。
    11. 晚风
      晚风轻拂第 12 楼2026/07/13 18:55:43
      这个思路很巧妙,Vercel 环境变量改了要重新部署才生效,NEXT_PUBLIC_ 变量尤其如此。
    登录后可回复
    热更

    热更新选手

    楼主个人主页

    帖子信息

    11 回复
    0 浏览
    2 赞
    0 收藏
    回复