Skip to content

TypeError: Cannot read properties of undefined (reading 'type') #51

@kuaj

Description

@kuaj

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions