Prisma新增表执行migrate dev遇非交互式环境不支持错误
问题解决:Prisma Migrate 非交互式环境报错
问题场景
在schema.prisma中新增了如下模型:
model REF_DOMAIN_GSTANDARDS { Data_Domain_GS String? @db.VarChar(Max) DomainGSID Int @id@default(autoincrement()) }
执行迁移命令时触发错误:
环境变量已从.env加载 Prisma schema已从prisma\schema.prisma加载 数据源"db": SQL Server数据库 Error: Prisma Migrate has detected that the environment is non-interactive, which is not supported. prisma migrate dev是用于在开发环境创建新迁移并演进数据库的交互式命令。在部署环境中应用现有迁移,请使用prisma migrate deploy。
原因分析
prisma migrate dev是开发环境专属的交互式命令,它需要终端支持交互操作(比如弹出确认提示让你确认数据库变更)。当你在非交互式环境(如CI/CD流水线、无交互的远程服务器会话、自动化脚本)中执行该命令时,就会触发这个错误。
解决方案
1. 开发环境下的修复
如果你是在本地开发环境操作:
- 确保你是在本地交互式终端(Windows CMD/PowerShell、Mac/Linux Terminal、IDE支持交互的终端面板)执行命令。
- 检查终端是否被配置为非交互式模式,恢复为默认的交互式设置即可。
2. 部署/非开发环境下的修复
如果是在生产、测试或部署环境中:
- 改用非交互式的迁移命令:
该命令会直接应用已生成的迁移文件,无需交互确认,适合自动化或非交互场景。npx prisma migrate deploy
额外提示
你的模型代码中有一处语法小问题:@id@default(autoincrement())之间缺少空格,修正为:
model REF_DOMAIN_GSTANDARDS { Data_Domain_GS String? @db.VarChar(Max) DomainGSID Int @id @default(autoincrement()) }
避免后续出现语法解析错误。
内容的提问来源于stack exchange,提问作者Nurul Atirah Binti Ahmad
相关产品推荐
相关产品推荐

