运行 prisma 迁移/生成后出现 Prisma ECONNREFUSED 错误

Prisma ECONNREFUSED error after running prisma migrate / generate

我有一个 Prisma 客户端连接到 Express 服务器内的本地 MySQL 数据库。 服务器和数据库一开始工作正常,输入也正确。但是:

在 运行 npx prisma migrate devnpx prisma generate 之后,没有任何效果了。

它总是在执行任何请求时抛出 connect ECONNREFUSED ::1:50898

这种工作的唯一解决方法是再次创建完全相同的模式,但是在另一个节点项目上,执行 prisma generate 然后将生成的“.prisma”文件夹复制到我的 node_modules .

错误出现在我的本地主机 MySQL 数据库上,但也出现在连接到 PrismaCloud Postgres 数据库时。

这对我来说真的很烦人,因为我真的很喜欢 Prisma,但由于这个问题,我无法真正有效地使用它。

我正在为我的服务器使用全局 prisma 客户端,如下所示:

import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

export default prisma;

我在 ./prisma/schema.prisma 下的架构如下所示:

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "mysql"
  url      = env("DATABASE_URL")
}

model User {
  id           Int        @id @default(autoincrement())
  email        String     @unique
  password     String
}

我的 DATABASE_URL 看起来像这样:DATABASE_URL="mysql://root:password@127.0.0.1:3306/merkurier?schema=public"

失败查询的示例如下所示:

 const user = await prisma.user.findFirst({
            where: {
              email,
            },
          });

我正在使用 M1 mac 而不是 docker(也许我应该使用 Docker)

Prisma 在新的 M1 芯片上本机运行,无需配置,但我遇到了同样的问题,Prisma error: connect ECONNREFUSED ::1:50269,我意识到这个问题可能有不同的原因,比如你的机器上不支持 NodeJS 引擎,Prisma在 3.x 下或无法在您的主机
上访问查询引擎 就我而言,我的问题在手动安装最新的 Prisma 后得到解决。
要安装最新的 Prisma,请执行以下命令:

npm i --save-dev prisma@latest
npm i @prisma/client@latest