studio
studio copied to clipboard
Prisma Studio Delete Many To Many Data Error
Bug description
Prisma Studio Relation table delete record error
How to reproduce
Failed to commit changes:
Invalid t=YS(this),A=Object.create()
invocation in
C:\Users\test\Desktop\test\prismapostgre\node_modules\prisma\prisma-client\runtime\index.js:255:5157
252 }:Rf(n,this.inputType)).join(
,${r?" ":253
}),r?0:ga)}${r?"":
254 }]
}return${A}: ${Rf(t,this.inputType)}
}}toString(){return this._toString(this.value,this.key)}collectErrors(){if(!this.hasError)return[];let t=[];if(this.error){let A=typeof this.inputType?.type=="object"?${this.inputType.type.name}${this.inputType.isList?"[]":""}
:void 0;t.push({error:this.error,path:[this.key],id:A})}return Array.isArray(this.value)?t.concat(this.value.flatMap((A,r)=>A?.collectErrors?A.collectErrors().map(n=>({...n,path:[this.key,r,...n.path]})):[])):this.value instanceof st?t.concat(this.value.collectErrors().map(A=>({...A,path:[this.key,...A.path]}))):t}};s(gA,"Arg");function xl({dmmf:e,rootTypeName:t,rootField:A,select:r,modelName:n,extensions:i}){r||(r={});let o=t==="query"?e.queryType:e.mutationType,a={args:[],outputType:{isList:!1,type:o,location:"outputObjectTypes"},name:t},c={modelName:n},g=wS({dmmf:e,selection:{[A]:r},schemaField:a,path:[t],context:c,extensions:i});return new Fl(t,g)}s(xl,"makeDocument");function yS(e){return e}s(yS,"transformDocument");function wS({dmmf:e,selection:t,schemaField:A,path:r,context:n,extensions:i}){let o=A.outputType.type,a=n.modelName?i.getAllComputedFields(n.modelName):{};return t=zb(t,a),Object.entries(t).reduce((c,[g,l])=>{let u=o.fieldMap?o.fieldMap[g]:o.fields.find(p=>p.name===g);if(!u)return a?.[g]||c.push(new ot({name:g,children:[],error:{type:"invalidFieldName",modelName:o.name,providedName:g,didYouMean:Oa(g,o.fields.map(p=>p.name).concat(Object.keys(a??{}))),outputType:o}})),c;if(u.outputType.location==="scalar"&&u.args.length===0&&typeof l!="boolean")return c.push(new ot({name:g,children:[],error:{type:"invalidFieldType",modelName:o.name,fieldName:g,providedValue:l}})),c;if(l===!1)return c;let h={name:u.name,fields:u.args,constraints:{minNumFields:null,maxNumFields:null}},E=typeof l=="object"?fS(l,["include","select"]):void 0,C=E?Tl(E,h,n,[],typeof u=="string"?void 0:u.outputType.type):void 0,f=u.outputType.location==="outputObjectTypes";if(l){if(l.select&&l.include)c.push(new ot({name:g,children:[new ot({name:"include",args:new st,error:{type:"includeAndSelect",field:u}})]}));else if(l.include){let p=Object.keys(l.include);if(p.length===0)return c.push(new ot({name:g,children:[new ot({name:"include",args:new st,error:{type:"emptyInclude",field:u}})]})),c;if(u.outputType.location==="outputObjectTypes"){let B=u.outputType.type,y=B.fields.filter(S=>S.outputType.location==="outputObjectTypes").map(S=>S.name),R=p.filter(S=>!y.includes(S));if(R.length>0)return c.push(...R.map(S=>new ot({name:S,children:[new ot({name:S,args:new st,error:{type:"invalidFieldName",modelName:B.name,outputType:B,providedName:S,didYouMean:Oa(S,y)||void 0,isInclude:!0,isIncludeScalar:B.fields.some(P=>P.name===S)}})]}))),c}}else if(l.select){let p=Object.values(l.select);if(p.length===0)return c.push(new ot({name:g,children:[new ot({name:"select",args:new st,error:{type:"emptySelect",field:u}})]})),c;if(p.filter(y=>y).length===0)return c.push(new ot({name:g,children:[new ot({name:"select",args:new st,error:{type:"noTrueSelect",field:u}})]})),c}}let I=f?TG(e,u.outputType.type):null,d=I;l&&(l.select?d=l.select:l.include?d=aa(I,l.include):l.by&&Array.isArray(l.by)&&u.outputType.namespace==="prisma"&&u.outputType.location==="outputObjectTypes"&&$C(u.outputType.type.name)&&(d=MG(l.by)));let m;if(d!==!1&&f){let p=n.modelName;typeof u.outputType.type=="object"&&u.outputType.namespace==="model"&&u.outputType.location==="outputObjectTypes"&&(p=u.outputType.type.name),m=wS({dmmf:e,selection:d,schemaField:u,path:[...r,g],context:{modelName:p},extensions:i})}return c.push(new ot({name:g,args:C,children:m,schemaField:u})),c},[])}s(wS,"selectionToFields");function MG(e){let t=Object.create(null);for(let A of e)t[A]=!0;return t}s(MG,"byToSelect");function TG(e,t){let A=Object.create(null);for(let r of t.fields)e.typeMap[r.outputType.type.name]!==void 0&&(A[r.name]=!0),(r.outputType.location==="scalar"||r.outputType.location==="enumTypes")&&(A[r.name]=!0);return A}s(TG,"getDefaultSelection");function Tf(e,t,A,r){return new gA({key:e,value:t,isEnum:r.location==="enumTypes",inputType:r,error:{type:"invalidType",providedValue:t,argName:e,requiredType:{inputType:A.inputTypes,bestFittingType:r}}})}s(Tf,"getInvalidTypeArg");function bS(e,t,A){let{isList:r}=t,n=xG(t,A),i=Mn(e,t);return i===n||r&&i==="List<>"||n==="Json"&&i!=="Symbol"&&!(e instanceof Rt)&&!(e instanceof Vt)||i==="Int"&&n==="BigInt"||(i==="Int"||i==="Float")&&n==="Decimal"||i==="DateTime"&&n==="String"||i==="UUID"&&n==="String"||i==="String"&&n==="ID"||i==="Int"&&n==="Float"||i==="Int"&&n==="Long"||i==="String"&&n==="Decimal"&&LG(e)||e===null?!0:t.isList&&Array.isArray(e)?e.every(o=>bS(o,{...t,isList:!1},A)):!1}s(bS,"hasCorrectScalarType");function xG(e,t,A=e.isList){let r=Fn(e.type);return e.location==="fieldRefTypes"&&t.modelName&&(r+=<${t.modelName}>
),Qo(r,A)}s(xG,"getExpectedType");var Ml=s(e=>hS(e,(t,A)=>A!==void 0),"cleanObject");function LG(e){return/^-?(\d+(.\d*)?|.\d+)(e[+-]?\d+)?$/i.test(e)}s(LG,"isDecimalString");function vG(e,t,A,r){let n=null,i=[];for(let o of A.inputTypes){if(n=qG(e,t,A,o,r),n?.collectErrors().length===0)return n;if(n&&n?.collectErrors()){let a=n?.collectErrors();a&&a.length>0&&i.push({arg:n,errors:a})}}if(n?.hasError&&i.length>0){let o=i.map(({arg:a,errors:c})=>{let g=c.map(l=>{let u=1;return l.error.type==="invalidType"&&(u=2Math.exp(SS(l.error.providedValue))+1),u+=Math.log(l.path.length),l.error.type==="missingArg"&&a.inputType&&co(a.inputType.type)&&a.inputType.type.name.includes("Unchecked")&&(u=2),l.error.type==="invalidName"&&co(l.error.originalType)&&l.error.originalType.name.includes("Unchecked")&&(u*=2),u});return{score:c.length+UG(g),arg:a,errors:c}});return o.sort((a,c)=>a.score<c.score?-1:1),o[0].arg}return n}s(vG,"valueToArg");function SS(e){let t=1;if(!e||typeof e!="object")return t;for(let A in e)if(!!Object.prototype.hasOwnProperty.call(e,A)&&typeof e[A]=="object"){let r=SS(e[A])+1;t=Math.max(r,t)}return t}s(SS,"getDepth");function UG(e){return e.reduce((t,A)=>t+A,0)}s(UG,"sum");function qG(e,t,A,r,n){if(typeof t>"u")return A.isRequired?new gA({key:e,value:t,isEnum:r.location==="enumTypes",inputType:r,error:{type:"missingArg",missingName:e,missingArg:A,atLeastOne:!1,atMostOne:!1}}):null;let{isNullable:i,isRequired:o}=A;if(t===null&&!i&&!o&&!(co(r.type)?r.type.constraints.minNumFields!==null&&r.type.constraints.minNumFields>0:!1))return new gA({key:e,value:t,isEnum:r.location==="enumTypes",inputType:r,error:{type:"invalidNullArg",name:e,invalidType:A.inputTypes,atLeastOne:!1,atMostOne:!1}});if(!r.isList)if(co(r.type)){if(typeof t!="object"||Array.isArray(t)||r.location==="inputObjectTypes"&&!ES(t))return Tf(e,t,A,r);{let l=Ml(t),u,h=Object.keys(l||{}),E=h.length;return E===0&&typeof r.type.constraints.minNumFields=="number"&&r.type.constraints.minNumFields>0||r.type.constraints.fields?.some(C=>h.includes(C))===!1?u={type:"atLeastOne",key:e,inputType:r.type,atLeastFields:r.type.constraints.fields}:E>1&&typeof r.type.constraints.maxNumFields=="number"&&r.type.constraints.maxNumFields<2&&(u={type:"atMostOne",key:e,inputType:r.type,providedKeys:h}),new gA({key:e,value:l===null?null:Tl(l,r.type,n,A.inputTypes),isEnum:r.location==="enumTypes",error:u,inputType:r,schemaArg:A})}}else return mS(e,t,A,r,n);if(!Array.isArray(t)&&r.isList&&e!=="updateMany"&&(t=[t]),r.location==="enumTypes"||r.location==="scalar")return mS(e,t,A,r,n);let a=r.type,g=(typeof a.constraints?.minNumFields=="number"&&a.constraints?.minNumFields>0?Array.isArray(t)&&t.some(l=>!l||Object.keys(Ml(l)).length===0):!1)?{inputType:a,key:e,type:"atLeastOne"}:void 0;if(!g){let l=typeof a.constraints?.maxNumFields=="number"&&a.constraints?.maxNumFields<2?Array.isArray(t)&&t.find(u=>!u||Object.keys(Ml(u)).length!==1):!1;l&&(g={inputType:a,key:e,type:"atMostOne",providedKeys:Object.keys(l)})}if(!Array.isArray(t))for(let l of A.inputTypes){let u=Tl(t,l.type,n);if(u.collectErrors().length===0)return new gA({key:e,value:u,isEnum:!1,schemaArg:A,inputType:l})}return new gA({key:e,value:t.map(l=>r.isList&&typeof l!="object"?l:typeof l!="object"||!t?Tf(e,l,A,r):Tl(l,a,n)),isEnum:!1,inputType:r,schemaArg:A,error:g})}s(qG,"tryInferArgs");function co(e){return!(typeof e=="string"||Object.hasOwnProperty.call(e,"values"))}s(co,"isInputArgType");function mS(e,t,A,r,n){return bS(t,r,n)?new gA({key:e,value:t,isEnum:r.location==="enumTypes",schemaArg:A,inputType:r}):Tf(e,t,A,r)}s(mS,"scalarToArg");function Tl(e,t,A,r,n){t.meta?.source&&(A={modelName:t.meta.source});let i=Ml(e),{fields:o,fieldMap:a}=t,c=o.map(h=>[h.name,void 0]),g=Object.entries(i||{}),u=jC(g,c,h=>h[0]).reduce((h,[E,C])=>{let f=a?a[E]:o.find(d=>d.name===E);if(!f){let d=typeof C=="boolean"&&n&&n.fields.some(m=>m.name===E)?E:null;return h.push(new gA({key:E,value:C,error:{type:"invalidName",providedName:E,providedValue:C,didYouMeanField:d,didYouMeanArg:!d&&Oa(E,[...o.map(m=>m.name),"select"])||void 0,originalType:t,possibilities:r,outputType:n}})),h}let I=vG(E,C,f,A);return I&&h.push(I),h},[]);if(typeof t.constraints.minNumFields=="number"&&g.length<t.constraints.minNumFields||u.find(h=>h.error?.type==="missingArg"||h.error?.type==="atLeastOne")){let h=t.fields.filter(E=>!E.isRequired&&i&&(typeof i[E.name]>"u"||i[E.name]===null));u.push(...h.map(E=>{let C=E.inputTypes[0];return new gA({key:E.name,value:void 0,isEnum:C.location==="enumTypes",error:{type:"missingArg",missingName:E.name,missingArg:E,atLeastOne:Boolean(t.constraints.minNumFields)||!1,atMostOne:t.constraints.maxNumFields===1||!1},inputType:C})}))}return new st(u)}s(Tl,"objectToArgs");function Ll({document:e,path:t,data:A}){let r=Sf(A,t);if(r==="undefined")return null;if(typeof r!="object")return r;let n=PG(e,t);return xf({field:n,data:…
Expected behavior
Prisma information
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
model Job {
id String @id @default(cuid())
jobId String @unique
slug String @unique
jobName String
jobDescription String
requirements String?
image String
jobSkills String[]
salary Float?
perks String[] @default([])
isDisabled Boolean @default(false)
isUrgent Boolean @default(false)
status String @default("pending")
createdAt DateTime @default(now())
updatedAt DateTime @default(now())
employerId String
jobType JobType
address String?
cityName String?
countryName String?
salaryType SalaryType?
townName String?
company String
createdBy Employer @relation(fields: [employerId], references: [id])
isJobFavorite User[] @relation("JobFavorite")
appliedJob AppliedJob[]
}
model User {
id String @id @default(cuid())
name String
email String @unique
password String
phone String @unique
address String?
role String @default("jobseeker")
verificationCode String?
verificationCodeExpiration DateTime?
verificationCodeAttempts Int @default(0)
codeRequestCounter Int @default(0)
lastCodeRequest DateTime?
jobSaved Job[] @relation("JobFavorite")
appliedJob AppliedJob[]
}
model AppliedJob {
job Job @relation(fields: [jobId], references: [jobId])
jobId String
user User @relation(fields: [userId], references: [id])
userId String
assignedAt DateTime @default(now())
@@id([jobId, userId])
@@map("_AppliedJob")
}
Environment & setup
- OS: Windiows
- Database: PostreSQL
- Node.js version: v18.12.1
Prisma Version
4.10.1