Reputation: 109
im trying to seed my database, but i got this error: Unique constraint failed on the constraint: Figures_table_manufacturerID_key
i try to fix that, but nothing works, here my schema:
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
model Figures_table {
id String @id @unique
name String @db.LongText
category String @db.LongText
price String @db.LongText
specifications String @db.LongText
releaseInfo String @db.LongText
details String @db.LongText
createdAt DateTime @default(now())
Series Series[]
Images Images[]
Manufacturers Manufacturers[]
serieID Int @unique
manufacturerID Int @unique
}
model Series {
id Int @id @unique @default(autoincrement())
serie String
serieReferenceID Figures_table @relation(fields: [id], references: [serieID])
}
model Manufacturers {
id Int @id @unique @default(autoincrement())
manufacturer String
manufacturerReferenceID Figures_table @relation(fields: [id], references: [manufacturerID])
}
model Images {
id Int @id @unique @default(autoincrement())
link String
figureID String
figureReferenceID Figures_table @relation(fields: [figureID], references: [id])
}
my seed
import { PrismaClient } from "@prisma/client";
import { series, manufacturers, images, figures } from "./data";
async function seed() {
const prisma = new PrismaClient();
await prisma.figures_table.createMany({ data: figures as any });
await prisma.images.createMany({ data: images as any });
await prisma.manufacturers.createMany({ data: manufacturers as any });
await prisma.series.createMany({ data: series as any });
}
seed();
my data file is too long, if you want to see, click: https://github.com/DanielTrybe/backend-figures/blob/master/prisma/data.js
Upvotes: 0
Views: 1667
Reputation: 7588
In the Figures_table
you have defined a unique constraint on manufactureID which would mean that each manufacture could only have one figure, but in your seed data there are multiple figures for the same manufacture which is causing this constraint failed error.
If you want to allow multiple images for a manufacturer you would need to remove the @unique
constraint
model Figures_table {
id String @id @unique
name String @db.LongText
category String @db.LongText
price String @db.LongText
specifications String @db.LongText
releaseInfo String @db.LongText
details String @db.LongText
createdAt DateTime @default(now())
Series Series[]
Images Images[]
Manufacturers Manufacturers[]
serieID Int @unique
manufacturerID Int
}
Upvotes: 1