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

Prisma与PlanetScale生产/开发Schema不一致,Vercel部署字段缺失求助

解决Prisma + PlanetScale部署Vercel后字段缺失问题
  • 检查Prisma Client生成与部署同步
    开发环境更新Schema后,你本地肯定重新生成了Prisma Client,但部署到Vercel时可能没同步最新的生成文件或Schema:

    • 部署前务必在本地执行prisma generate,并把生成的@prisma/client相关文件(如果是自定义输出目录,比如./prisma/client)提交到版本控制。
    • 确认Vercel的构建命令包含prisma generate,比如在package.json的scripts里设置"build": "prisma generate && next build"(Next.js项目为例),让Vercel构建时自动生成最新的Client。
  • 核对PlanetScale分支的Schema同步情况
    可能你开发用的是PlanetScale的开发分支,而Vercel生产环境连接的是主分支,主分支的Schema没同步image这类新字段:

    • 登录PlanetScale控制台,检查生产环境关联分支的Schema,确认所有字段都存在。
    • 如果分支不同步,用PlanetScale的部署请求(deploy request)把开发分支的Schema变更推送到生产分支。
  • 排查查询语句的字段限制
    代码里的查询逻辑可能在生产环境不小心限制了返回字段:

    • 检查API路由或数据获取代码,确认没手动用select只指定id、name、price三个字段。比如:
      错误示例:
      const products = await prisma.product.findMany({
        select: { id: true, name: true, price: true }
      })
      
      正确写法(全量返回):
      const products = await prisma.product.findMany()
      
      或者明确指定需要的所有字段:
      const products = await prisma.product.findMany({
        select: { id: true, name: true, price: true, image: true }
      })
      
  • 清除Vercel缓存重新部署
    Vercel可能缓存了旧的构建产物,导致新变更没生效:

    • 到Vercel控制台找到对应项目,手动触发重新部署,勾选"Redeploy with cache cleared"选项,确保拉取最新代码和依赖。

内容的提问来源于stack exchange,提问作者Gabriel Lazcano

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:15:35