Open
Description
Hey,
there is some niche error for complex models (many to many)
TypeError: Cannot read properties of undefined (reading 'type')
at getJoinIdType (/prisma-dbml-generator/dist/generator/many-to-many-tables.js:46:28)
at joinField (/prisma-dbml-generator/dist/generator/many-to-many-tables.js:39:47)
I did hack around and that's because of multiple named relations that are completely valid within Prisma
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
generator dbml {
provider = "node ./dist/generator.js"
mapToDbSchema = "false"
}
model Person {
id String @id @default(uuid())
// this is the problematic definition
SportClubMembers SportClubMembers[] @relation("member")
ScienceClubMembers ScienceClubMembers[] @relation("member")
}
model SportClub {
id String @id @default(uuid())
members SportClubMembers[]
@@unique(id)
}
model ScienceClub {
id String @id @default(uuid())
members ScienceClubMembers[]
@@unique(id)
}
//
// Relations
//
// Members on Somethings
model SportClubMembers {
SportClub SportClub @relation(fields: [sportClubId], references: id)
sportClubId String
Person Person @relation("member", fields: [personId], references: id)
personId String
@@id([sportClubId, personId])
}
model ScienceClubMembers {
ScienceClub ScienceClub @relation(fields: [scienceClubId], references: id)
scienceClubId String
Person Person @relation("member", fields: [personId], references: id)
personId String
@@id([scienceClubId, personId])
}
Metadata
Metadata
Assignees
Labels
No labels