【问题标题】:Prisma "Error creating a database connection"Prisma“创建数据库连接时出错”
【发布时间】:2021-08-09 23:23:03
【问题描述】:

我有一个使用 Prisma 的 node/express 项目。数据库是 SqlServer。我完成了所有设置。所有相关工具都工作正常。在 CLI 中:prisma generate & prisma migrate & prisma introspect 使用我的 schema.prisma 文件都能完美运行。 Prisma Studio 使用完全相同的模式文件,连接良好并与数据库交互,没有问题。同样,Azure Data Studio 使用完全相同的主机/用户/密码轻松连接到数据库。但是当我尝试使用 PrismaClient(例如使用findMany)时,它会报错:Invalid prisma.user.findMany() invocation: Error creating a database connection.

我使用的是 Mac - Big Sur 11.3.1

SqlServer 在单独的 docker 容器中运行,我可以通过多种方式访问​​它,没有问题。

schema.prisma(除 Prisma 客户端外,一切正常)

generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["microsoftSqlServer"]
}

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

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

users.service.ts

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

class UserService {
  public users = new PrismaClient().user;

  public async findAllUser(): Promise<User[]> {
    const allUser: User[] = await this.users.findMany();
    return allUser;
  }
}

【问题讨论】:

  • 您好,我与 Prisma 团队合作,我们正准备在 GA 中发布 SQL Server 连接器。你能解决这个问题吗?请随时就此事与我们联系,或提出您认为我们应该优先考虑的任何其他要求here
  • 感谢您与我们联系。是的,我已经能够解决这个问题。

标签: node.js sql-server prisma


【解决方案1】:

好的,所以我至少找到了部分答案。我一直在通过docker-compose 在 Docker 容器中运行我的 Prisma/Node 项目。相反,如果我只是通过npm run dev 运行它,那么 PrismaClient 工作正常!不知道为什么它在容器内时无法连接到我的数据库...

【讨论】:

  • 当使用docker-compose时,你是通过数据库服务名连接的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-15
  • 2021-08-27
  • 2015-07-15
  • 2021-05-28
  • 1970-01-01
相关资源
最近更新 更多