我在第一个实例中创建了这个模式
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
}
然后我推db (prisma db push—preview-feature),然后我插入一个对象,像这样:
{
email: "email@gmail.com"
role:"FORMACION3"
createdAt:1970-01-01T00:00:00.000+00:00
}
之后我删除了"Formacion3"从TipoFichaje和push (prisma db push)返回ENUM
:
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)提出的
这里