簡體   English   中英

Mongo 模式和枚舉的 Prisma 遷移問題

[英]Prisma Migrating issue with Mongo schema and Enums

所以我首先制作了這個模式

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

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

model User {

  id        String      @id @default(auto()) @map("_id") @db.ObjectId
  email     String      @unique
  role      TipoFichaje @default(JORNADA_ENTRADA)
  createdAt DateTime    @db.Date

}

model Entity {

  id        String   @id @default(auto()) @map("_id") @db.ObjectId
  name      String
  createdAt DateTime @db.Date

}

enum TipoFichaje {
  JORNADA_ENTRADA
  JORNADA_SALIDA
  DESAYUNO
  COMIDA
  FORMACION
  FORMACION3
}

那么我推送數據庫(prisma db push --preview-feature),然后我插入了一個像這樣的對象:

{
  email: "email@gmail.com"
  role:"FORMACION3"
  createdAt:1970-01-01T00:00:00.000+00:00
}

之后,我從 TipoFichaje 中刪除“Formacion3”ENUM 並再次推送(prisma db push)

像這樣:

enum TipoFichaje {
      JORNADA_ENTRADA
      JORNADA_SALIDA
      DESAYUNO
      COMIDA
      FORMACION
}

當我嘗試使用 Prisma Studio 獲取數據時會拋出此錯誤:

Message: Error in Prisma Client request: 


Invalid `prisma.user.findMany()` invocation:


  Value 'FORMACION3' not found in enum 'TipoFichaje'
  
Query:
{
  "modelName": "User",
  "operation": "findMany",
  "args": {
    "take": 100,
    "skip": 0,
    "select": {
      "id": true,
      "email": true,
      "role": true,
      "createdAt": true
    }
  }
}

我的問題是:這是正常行為嗎? 我的意思是,如果我使用新更改遷移數據庫,遷移不應該解決這個問題嗎? 我怎樣才能解決這個問題?

因此,Janpio(Prisma 工程主管)提出了解決方案

這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM