运行 prisma migrate / generate 后 Prisma ECONNREFUSED 错误

Posted

技术标签:

【中文标题】运行 prisma migrate / generate 后 Prisma ECONNREFUSED 错误【英文标题】:Prisma ECONNREFUSED error after running prisma migrate / generate 【发布时间】:2021-12-28 19:21:29 【问题描述】:

我有一个 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 团队的 Tasin。您是否能够在任何其他设备上复制它,或者您认为它只发生在您的 M1 Mac 上?有人遇到麻烦with the Prisma Client on an M1,我不确定这些是否相关。如果它是类似的东西,请你检查那个问题?如果不是,我会要求您创建一个bug report,最好带有用于复制的步骤/说明。这真的会帮助我们调查这个问题。 【参考方案1】:

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

【讨论】:

我运行的是旧版本的 Prisma。它在安装 Prisma 3 时起作用

以上是关于运行 prisma migrate / generate 后 Prisma ECONNREFUSED 错误的主要内容,如果未能解决你的问题,请参考以下文章

Prisma migrate dev:连接到数据库时运行命令?

prisma2 migrate 错误:数据库中的迁移比本地多

Docker 中的 NestJS 无法在另一个 Docker 容器中的 Postgres 上执行 Prisma Migrate

prisma db push 和 prisma migrate dev 之间的区别

错误:P1014 模型“_migration”的基础表不存在

运行 prisma init 时,Prisma 不生成文件