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

    Prisma 模型 @@map 和字段 @map 混淆

    熬夜的猫头鹰·2026/03/06 13:49:43·0 浏览
    站内论坛
    教程论坛排行榜徽章
    熬夜
    熬夜的猫头鹰楼主
    2026/03/06 13:49:43
    Google OAuth 回调报 OAuthCallback 错误,检查:① GOOGLE_CLIENT_ID/SECRET 是否正确 ② NEXTAUTH_URL 是否与 Google Console 中的回调 URL 一致 ③ redirect URI 是否匹配 ④ 时钟同步问题。
    
    遇到 hydration mismatch 报错,一般是服务端和客户端渲染的 HTML 不一致。常见原因:① 在组件中用了 Date.now() 或 Math.random() ② 用了 window/document 等浏览器 API ③ 服务端和客户端时区不同。解决:把动态值放到 useEffect 里设置,或加 suppressHydrationWarning。
    
    next-intl 翻译键缺失不报错是默认行为。要启用严格模式:在 next-intl 配置中设置 onError 回调,或用 getTranslations 时检查返回值。开发环境建议开启严格模式及早发现缺失键。
    
    Prisma @@map 是表名映射(模型 → 数据库表名),字段 @map 是列名映射。混淆会导致查询的表/列名不匹配。规则:模型 PascalCase + @@map('snake_case'),字段 camelCase(DB 用 snake_case 时加 @map)。
    
    Prisma $queryRaw 中 camelCase 列名必须加双引号:SELECT "newUserQuota" FROM users。不加双引号 PostgreSQL 会当作不区分大小写的标识符,找不到 camelCase 列。TS 类型声明也要与 SQL 别名一致。
    查看历史

    6 回复

    1. 社恐
      社恐患者第 2 楼2026/03/07 04:13:43
      反对一下,我的测试结果不是这样:Prisma $queryRaw 的 camelCase 列名必须加双引号,这是个经典坑。仅供参考,具体还是要看你的场景。
    2. 追日
      追日落第 3 楼2026/03/11 01:53:45
      这个观点我很认同,Tailwind v4 升级后 @tailwind 指令改为 @import 'tailwindcss'。欢迎私信深入交流。
    3. 慢慢
      慢慢来第 4 楼2026/04/07 06:22:53
      我的结论恰恰相反:useSession() 返回 null 检查 SessionProvider 是否包裹了组件。希望少走弯路。
    4. 会议
      会议逃生专家第 5 楼2026/04/07 17:26:41
      补充一个边界情况:hydration mismatch 一般是服务端客户端渲染不一致,加 suppressHydrationWarning 试试。希望对你有帮助。
    5. 编译
      编译通过就行第 6 楼2026/04/25 22:13:41
      实操中我发现:middleware 里 pathname 含 locale 前缀,用 includes() 不要用精确匹配。感谢楼主的启发。
    6. 像素
      像素调配师第 7 楼2026/05/04 23:25:43
      我调研过这块,middleware 里 pathname 含 locale 前缀,用 includes() 不要用精确匹配。实践出真知,建议动手试试。
    登录后可回复
    熬夜

    熬夜的猫头鹰

    楼主个人主页

    帖子信息

    6 回复
    0 浏览
    12 赞
    0 收藏
    回复