运行prisma migrate/generate后出现ECONNREFUSED连接错误该怎么解决?
问题根因
该错误为M1架构Mac设备上Prisma的查询引擎架构兼容问题导致:本地项目执行prisma generate时拉取了错误的x86架构查询引擎二进制文件,无法正常启动引擎进程,因此抛出非数据库端口的ECONNREFUSED报错。跨项目复制生成文件可临时解决,是因为其他项目生成时拉取到了适配arm64架构的正确二进制文件。
永久修复步骤
- 升级Prisma依赖到最新稳定版
旧版本Prisma对M1芯片的兼容存在大量已知问题,先卸载现有依赖重新安装:
npm uninstall prisma @prisma/client npm install prisma --save-dev npm install @prisma/client
- 在Schema中明确指定适配架构
修改./prisma/schema.prisma的generator配置,强制生成darwin-arm64架构的查询引擎:
generator client { provider = "prisma-client-js" binaryTargets = ["native", "darwin-arm64"] }
- 清理历史错误缓存
删除本地残留的错误生成文件和全局Prisma缓存:
rm -rf node_modules/.prisma npx prisma cache clear
- 重新执行生成和迁移命令
npx prisma generate npx prisma migrate dev
完成后重启项目即可恢复正常访问,无需再跨项目复制文件。
额外排查点
如果执行上述步骤后仍报错,执行node -p "process.arch"检查Node.js架构:
- 输出为
arm64为正常状态 - 输出为
x64说明当前安装的是x86转译版Node.js,重新安装对应arm64架构的Node版本即可解决。
内容的提问来源于stack exchange,提问作者Mark Witt
相关产品推荐
相关产品推荐

