Prisma Data Proxy迁移脚本报错:'DATABASE_URL'未被识别
解决Prisma迁移脚本在Windows下的'DATABASE_URL'未识别错误
问题根源
你当前用的是Windows环境,但package.json里的迁移脚本用了Unix/Linux系统的环境变量临时赋值语法,Windows的CMD或PowerShell不支持这种写法,所以触发了该错误。
解决方案
方案1:适配Windows CMD
把脚本改成CMD支持的环境变量设置语法:
{ ..., "scripts": { "generate-client": "prisma generate --data-proxy", "migrate-deploy": "set DATABASE_URL=%MIGRATE_DATABASE_URL% && prisma migrate deploy", "dev": "set DATABASE_URL=%MIGRATE_DATABASE_URL% && prisma migrate dev", } }
方案2:适配Windows PowerShell
如果用的是PowerShell,改用PowerShell的环境变量赋值语法:
{ ..., "scripts": { "generate-client": "prisma generate --data-proxy", "migrate-deploy": "$env:DATABASE_URL=$env:MIGRATE_DATABASE_URL; prisma migrate deploy", "dev": "$env:DATABASE_URL=$env:MIGRATE_DATABASE_URL; prisma migrate dev", } }
方案3:跨平台通用方案(推荐)
安装cross-env包,它能让环境变量设置在Windows、Mac、Linux下都生效:
- 先安装依赖:
npm install cross-env --save-dev
- 修改package.json脚本:
{ ..., "scripts": { "generate-client": "prisma generate --data-proxy", "migrate-deploy": "cross-env DATABASE_URL=$MIGRATE_DATABASE_URL prisma migrate deploy", "dev": "cross-env DATABASE_URL=$MIGRATE_DATABASE_URL prisma migrate dev", } }
内容的提问来源于stack exchange,提问作者Stanleyy
相关产品推荐
相关产品推荐

