尝试使用 Prisma 进行 mongoDB 迁移时出现“此命令不支持‘mongodb’提供程序”错误

Mah*_*age 4 mongodb nestjs prisma

我正在使用 NestJS 和 Prisma ORM 开发一些简单的 Todo 应用程序 BE,并使用 MongoDB 作为数据库。我正在使用托管在 MongoDB Altas 云中的免费共享 MongoDB 集群。我还添加0.0.0.0/0到网络访问选项卡,以便任何人都可以连接到数据库。

schema.prisma文件

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

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

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

model Task {
  id      String   @id @default(auto()) @map("_id") @db.ObjectId
  name    String?
  description String?
  status  TaskStatus @default(TODO)
}

enum TaskStatus {
  TODO
  INPROGRESS
  DONE
}
Run Code Online (Sandbox Code Playgroud)

.env文件

DATABASE_URL="mongodb+srv://<username>:<password>@todoappdb.jfo3m2c.mongodb.net/?retryWrites=true&w=majority"
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行npx prisma migrate dev --name init命令时它给出以下输出

D:\todoapp-backend>npx prisma migrate dev --name init
Environment variables loaded from .env
Prisma schema loaded from prisma\schema.prisma
Datasource "db"

Error: The "mongodb" provider is not supported with this command. For more info see https://www.prisma.io/docs/concepts/database-connectors/mongodb
   0: migration_core::state::DevDiagnostic
             at migration-engine\core\src\state.rs:250
Run Code Online (Sandbox Code Playgroud)

有人能指出我有什么问题吗?

Mah*_*age 13

阅读一些内容后,发现prisma migrate命令仅适用于 SQL 数据库,因为它们具有严格的表结构。但 MongoDB 是一个文档数据库,这些数据是非结构化的

因此,我们可以使用以下命令,而不是运行prisma migrate命令

npx prisma generate
Run Code Online (Sandbox Code Playgroud)

此命令创建 Prisma 客户端,为我们的数据库提供类型安全的访问。

参考 - https://www.youtube.com/watch?v=b4nxOv91vWI&ab_channel=Prisma