Skip to content
This repository has been archived by the owner on Jan 14, 2021. It is now read-only.

Deeply nested creation never completes #686

Closed
siberian-man opened this issue May 12, 2020 · 4 comments
Closed

Deeply nested creation never completes #686

siberian-man opened this issue May 12, 2020 · 4 comments
Assignees
Labels
bug/2-confirmed We have confirmed that this is a bug. kind/bug A reported bug. status/fix-confirmed tech/engines Issue for tech Engines.
Milestone

Comments

@siberian-man
Copy link

siberian-man commented May 12, 2020

Bug description

If I try to execute a very deeply nested creation using prisma, it just runs endlessly.

How to reproduce

Just use attached schema and try to run attached query.

Expected behavior

Query execution should be completed successfully.

Prisma information

Prisma schema:

model Dish {
  id                            ID
  name                          String
  calories                      Float?
  proteins                      Float?
  fats                          Float?
  carbohydrates                 Float?

  meals                         Meal[]          @relation(references: [id])
}

model Meal {
  id                            ID
  dishes                        Dish[]          @relation(references: [id])

  breakfasts                    DayMenu[]       @relation("breakfast")
  snacksAfterBreakfast          DayMenu[]       @relation("snacksAfterBreakfast")
  dinners                       DayMenu[]       @relation("dinner")
  snacksBeforeSupper            DayMenu[]       @relation("snackBeforeSupper")
  suppers                       DayMenu[]       @relation("supper")
}

model DayMenu {
  id                            ID
  breakfast                     Meal            @relation("breakfast", fields: [breakfastId], references: [id])
  snackAfterBreakfast           Meal            @relation("snacksAfterBreakfast", fields: [snackAfterBreakfastId], references: [id])
  dinner                        Meal            @relation("dinner", fields: [dinnerId], references: [id])
  snackBeforeSupper             Meal            @relation("snackBeforeSupper", fields: [snackBeforeSupperId], references: [id])
  supper                        Meal            @relation("supper", fields: [supperId], references: [id])

  breakfastId                   String
  snackAfterBreakfastId         String
  dinnerId                      String
  snackBeforeSupperId           String
  supperId                      String
  mondays                       WeekMenu[]      @relation("monday")
  tuesdays                      WeekMenu[]      @relation("tuesday")
  wednesdays                    WeekMenu[]      @relation("wednesday")
  thursdays                     WeekMenu[]      @relation("thursday")
  fridays                       WeekMenu[]      @relation("friday")
  saturdays                     WeekMenu[]      @relation("saturday")
  sundays                       WeekMenu[]      @relation("sunday")
}

model WeekMenu {
  id                            ID
  monday                        DayMenu         @relation("monday", fields: [mondayId], references: [id])
  tuesday                       DayMenu         @relation("tuesday", fields: [tuesdayId], references: [id])
  wednesday                     DayMenu         @relation("wednesday", fields: [wednesdayId], references: [id])
  thursday                      DayMenu         @relation("thursday", fields: [thursdayId], references: [id])
  friday                        DayMenu         @relation("friday", fields: [fridayId], references: [id])
  saturday                      DayMenu         @relation("saturday", fields: [saturdayId], references: [id])
  sunday                        DayMenu         @relation("sunday", fields: [sundayId], references: [id])

  mondayId                      String
  tuesdayId                     String
  wednesdayId                   String
  thursdayId                    String
  fridayId                      String
  saturdayId                    String
  sundayId                      String
  timelineItems                 WeekMenuTimelineItem[]
}

model WeekMenuTimelineItem {
  id                            ID
  date                          DateTime
  weekMenu                      WeekMenu        @relation(fields: [weekMenuId], references: [id])

  weekMenuId                    String
}

Prisma query:

await db.weekMenuTimelineItem.create({
            data: {
                date: moment().toDate(),
                weekMenu: {
                    create: {
                        monday: {
                            create: {
                                breakfast: {create: {dishes: {create: {name: ""}}}},
                                snackAfterBreakfast: {create: {dishes: {create: {name: ""}}}},
                                dinner: {create: {dishes: {create: {name: ""}}}},
                                snackBeforeSupper: {create: {dishes: {create: {name: ""}}}},
                                supper: {create: {dishes: {create: {name: ""}}}},
                            }
                        },
                        tuesday: {
                            create: {
                                breakfast: {create: {dishes: {create: {name: ""}}}},
                                snackAfterBreakfast: {create: {dishes: {create: {name: ""}}}},
                                dinner: {create: {dishes: {create: {name: ""}}}},
                                snackBeforeSupper: {create: {dishes: {create: {name: ""}}}},
                                supper: {create: {dishes: {create: {name: ""}}}},
                            }
                        },
                        wednesday: {
                            create: {
                                breakfast: {create: {dishes: {create: {name: ""}}}},
                                snackAfterBreakfast: {create: {dishes: {create: {name: ""}}}},
                                dinner: {create: {dishes: {create: {name: ""}}}},
                                snackBeforeSupper: {create: {dishes: {create: {name: ""}}}},
                                supper: {create: {dishes: {create: {name: ""}}}},
                            }
                        },
                        thursday: {
                            create: {
                                breakfast: {create: {dishes: {create: {name: ""}}}},
                                snackAfterBreakfast: {create: {dishes: {create: {name: ""}}}},
                                dinner: {create: {dishes: {create: {name: ""}}}},
                                snackBeforeSupper: {create: {dishes: {create: {name: ""}}}},
                                supper: {create: {dishes: {create: {name: ""}}}},
                            }
                        },
                        friday: {
                            create: {
                                breakfast: {create: {dishes: {create: {name: ""}}}},
                                snackAfterBreakfast: {create: {dishes: {create: {name: ""}}}},
                                dinner: {create: {dishes: {create: {name: ""}}}},
                                snackBeforeSupper: {create: {dishes: {create: {name: ""}}}},
                                supper: {create: {dishes: {create: {name: ""}}}},
                            }
                        },
                        saturday: {
                            create: {
                                breakfast: {create: {dishes: {create: {name: ""}}}},
                                snackAfterBreakfast: {create: {dishes: {create: {name: ""}}}},
                                dinner: {create: {dishes: {create: {name: ""}}}},
                                snackBeforeSupper: {create: {dishes: {create: {name: ""}}}},
                                supper: {create: {dishes: {create: {name: ""}}}},
                            }
                        },
                        sunday: {
                            create: {
                                breakfast: {create: {dishes: {create: {name: ""}}}},
                                snackAfterBreakfast: {create: {dishes: {create: {name: ""}}}},
                                dinner: {create: {dishes: {create: {name: ""}}}},
                                snackBeforeSupper: {create: {dishes: {create: {name: ""}}}},
                                supper: {create: {dishes: {create: {name: ""}}}},
                            }
                        },
                    }
                }
            }
        })
    }

Prisma logs (DEBUG=*, log: ["info", "query", "warn"]):

  express:router dispatching POST / +7s
  express:router query  : / +1ms
  express:router expressInit  : / +0ms
  express:router corsMiddleware  : / +1ms
  body-parser:json content-type "application/json" +0ms
  body-parser:json content-encoding "identity" +2ms
  body-parser:json read body +0ms
  body-parser:json parse body +18ms
  body-parser:json parse json +0ms
  prisma-client Prisma Client call: +7s
  prisma-client prisma.weekMenuTimelineItem.create({
  prisma-client   data: {
  prisma-client     date: new Date('2020-05-16T17:00:00.000Z'),
  prisma-client     weekMenu: {
  prisma-client       create: {
  prisma-client         monday: {
  prisma-client           create: {
  prisma-client             breakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             snackAfterBreakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             dinner: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             snackBeforeSupper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             supper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client           }
  prisma-client         },
  prisma-client         tuesday: {
  prisma-client           create: {
  prisma-client             breakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             snackAfterBreakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             dinner: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             snackBeforeSupper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             supper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client           }
  prisma-client         },
  prisma-client         wednesday: {
  prisma-client           create: {
  prisma-client             breakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             snackAfterBreakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             dinner: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             snackBeforeSupper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             supper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client           }
  prisma-client         },
  prisma-client         thursday: {
  prisma-client           create: {
  prisma-client             breakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             snackAfterBreakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             dinner: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             snackBeforeSupper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             supper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client           }
  prisma-client         },
  prisma-client         friday: {
  prisma-client           create: {
  prisma-client             breakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             snackAfterBreakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             dinner: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             snackBeforeSupper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             supper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client           }
  prisma-client         },
  prisma-client         saturday: {
  prisma-client           create: {
  prisma-client             breakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             snackAfterBreakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             dinner: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             snackBeforeSupper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             supper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client           }
  prisma-client         },
  prisma-client         sunday: {
  prisma-client           create: {
  prisma-client             breakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             snackAfterBreakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             dinner: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             snackBeforeSupper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             },
  prisma-client             supper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: {
  prisma-client                     name: ''
  prisma-client                   }
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client           }
  prisma-client         }
  prisma-client       }
  prisma-client     }
  prisma-client   }
  prisma-client }) +2ms
  prisma-client Generated request: +11ms
  prisma-client mutation {
  prisma-client   createOneWeekMenuTimelineItem(data: {
  prisma-client     date: "2020-05-16T17:00:00.000Z"
  prisma-client     weekMenu: {
  prisma-client       create: {
  prisma-client         monday: {
  prisma-client           create: {
  prisma-client             breakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             snackAfterBreakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             dinner: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             snackBeforeSupper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             supper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client           }
  prisma-client         }
  prisma-client         tuesday: {
  prisma-client           create: {
  prisma-client             breakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             snackAfterBreakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             dinner: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             snackBeforeSupper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             supper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client           }
  prisma-client         }
  prisma-client         wednesday: {
  prisma-client           create: {
  prisma-client             breakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             snackAfterBreakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             dinner: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             snackBeforeSupper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             supper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client           }
  prisma-client         }
  prisma-client         thursday: {
  prisma-client           create: {
  prisma-client             breakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             snackAfterBreakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             dinner: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             snackBeforeSupper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             supper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client           }
  prisma-client         }
  prisma-client         friday: {
  prisma-client           create: {
  prisma-client             breakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             snackAfterBreakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             dinner: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             snackBeforeSupper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             supper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client           }
  prisma-client         }
  prisma-client         saturday: {
  prisma-client           create: {
  prisma-client             breakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             snackAfterBreakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             dinner: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             snackBeforeSupper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             supper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client           }
  prisma-client         }
  prisma-client         sunday: {
  prisma-client           create: {
  prisma-client             breakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             snackAfterBreakfast: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             dinner: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             snackBeforeSupper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client             supper: {
  prisma-client               create: {
  prisma-client                 dishes: {
  prisma-client                   create: [
  prisma-client                     {
  prisma-client                       name: ""
  prisma-client                     }
  prisma-client                   ]
  prisma-client                 }
  prisma-client               }
  prisma-client             }
  prisma-client           }
  prisma-client         }
  prisma-client       }
  prisma-client     }
  prisma-client   }) {
  prisma-client     id
  prisma-client     date
  prisma-client     weekMenuId
  prisma-client   }
  prisma-client }
  prisma-client  +1ms
  engine {
  engine   PRISMA_DML_PATH: '/Users/victor/Development/projects/healthy-intellect/hi-foodie-api/node_modules/.prisma/client/schema.prisma',
  engine   PORT: '56652',
  engine   RUST_BACKTRACE: '1',
  engine   RUST_LOG: 'info',
  engine   LOG_QUERIES: 'true',
  engine   OVERWRITE_DATASOURCES: '[]'
  engine } +0ms
  engine {
  engine   cwd: '/Users/victor/Development/projects/healthy-intellect/hi-foodie-api'
  engine } +3ms
  engine {
  engine   dotPrismaPath: '/Users/victor/Development/projects/healthy-intellect/hi-foodie-api/node_modules/.prisma/client/query-engine-darwin'
  engine } +1ms
  plusX Execution permissions of /Users/victor/Development/projects/healthy-intellect/hi-foodie-api/node_modules/.prisma/client/query-engine-darwin are fine +0ms
  engine { flags: [ '--enable-raw-queries' ] } +13ms
  engine stderr Printing to stderr for debugging +102ms
  engine stderr Listening on 127.0.0.1:56652 +1ms
  engine stdout {
  timestamp: 'May 12 12:23:03.687',
  level: 'INFO',
  target: 'quaint::pooled',
  fields: { message: 'Starting a postgresql pool with 9 connections.' }
} +3ms
prisma:info  Starting a postgresql pool with 9 connections.
  engine stdout {
  timestamp: 'May 12 12:23:03.696',
  level: 'INFO',
  target: 'query_engine::server',
  fields: { message: 'Started http server on 127.0.0.1:56652' }
} +8ms
prisma:info  Started http server on 127.0.0.1:56652
  engine stdout {
  timestamp: 'May 12 12:23:03.719',
  level: 'INFO',
  target: 'quaint::connector::metrics',
  fields: { query: 'BEGIN', item_type: 'query', params: '[]', duration_ms: 0 }
} +23ms
prisma:query BEGIN

Environment & setup

  • OS: Mac OS
  • Database: PostgreSQL
  • Prisma version: 2.0.0-beta.4
  • Node.js version: v13.2.0
@siberian-man
Copy link
Author

siberian-man commented May 12, 2020

BTW, if I split this creations onto several creations, it works. I.e. if I create DayMenu nodes separately and then connect them to main WeekMenuTimelineItem node during its creation.

This is my workaround for now. But this way it is not a single transaction anymore.

@pantharshit00
Copy link
Contributor

Thanks for the reproduction, I can confirm the issue.

Ready to go reproduction for internal use: https://github.com/harshit-test-org/issue-prisma-client-686

@pantharshit00 pantharshit00 added bug/2-confirmed We have confirmed that this is a bug. kind/bug A reported bug. process/candidate Candidate for next Milestone. labels May 19, 2020
@timsuchanek timsuchanek added the tech/engines Issue for tech Engines. label May 26, 2020
@janpio janpio added this to the Beta 7 milestone May 26, 2020
@janpio janpio removed the process/candidate Candidate for next Milestone. label May 26, 2020
@dpetrick dpetrick self-assigned this May 27, 2020
@janpio janpio modified the milestones: Beta 7, Beta 8 May 29, 2020
@mavilein mavilein added the process/candidate Candidate for next Milestone. label Jun 10, 2020
@janpio janpio modified the milestones: Beta 10, 2.1.0 Jun 10, 2020
@janpio janpio removed the process/candidate Candidate for next Milestone. label Jun 11, 2020
@dpetrick
Copy link

A fix will be available from 2.1.0-dev.17 onwards.

@pantharshit00
Copy link
Contributor

I can confirm this is fixed now:
image

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug/2-confirmed We have confirmed that this is a bug. kind/bug A reported bug. status/fix-confirmed tech/engines Issue for tech Engines.
Projects
None yet
Development

No branches or pull requests

6 participants