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

Prisma Schema部署至PlanetScale时执行db push报错求助

解决Prisma部署到PlanetScale时npx prisma db push的SQL语法错误

错误原因

报错的核心问题出在User表的name字段默认值定义上:

  • 当前Prisma Schema生成的SQL中,name字段的默认值写为DEFAULT id,而PlanetScale基于Vitess运行,Vitess要求引用同表列作为默认值时必须用括号包裹列名,即格式应为DEFAULT (id)。
  • 本地MySQL允许直接用列名作为默认值,所以本地执行无问题,但PlanetScale的Vitess语法校验更严格,因此触发了1064语法错误。

解决方案

修改Prisma Schema中User模型的name字段定义:

原代码

model User {
    id        String     @id @default(cuid())
    name      String?    @default(dbgenerated("id"))
    // ... 其他字段
}

修改后代码

model User {
    id        String     @id @default(cuid())
    name      String?    @default(dbgenerated("(id)"))
    // ... 其他字段
}

修改完成后,重新执行部署命令:

npx prisma db push

调整后生成的SQL会将name字段的默认值改为DEFAULT (id),符合Vitess的语法要求,即可正常完成表创建操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 21:10:27