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

SQL Server环境下Prisma删除带默认值列后执行db push报错怎么解决

问题修复方案

这个报错是Prisma 3.3.0版本对接SQL Server的已知缺陷:删除带默认值的字段时,不会自动前置删除关联的默认值约束,需要手动处理,两种可行方案如下:

方案1:直接操作数据库删除约束(最快)

  • 连接到你的SQL Server业务库,执行SQL删除对应约束:
ALTER TABLE users DROP CONSTRAINT users_role_df;

注意如果你的User模型自定义了@@map映射表名,需要把上面SQL中的users替换为实际的表名

  • 回到项目目录重新执行npm prisma db push,即可正常删除role字段

方案2:分两次执行db push,无需手动操作数据库

  • 第一步:先仅删除schema.prisma中role字段的@default("USER")注解,保留role String定义,执行一次npm prisma db push,这一步Prisma会自动删除users_role_df默认值约束
  • 第二步:再把role字段从User模型中完全移除,再次执行npm prisma db push即可完成字段删除

长期规避建议

升级Prisma到4.0及以上版本,该SQL Server默认值约束的处理缺陷已经在后续版本修复,不会再出现同类报错。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:48:02