Estoy tratando de sembrar mi base de datos y parece que prisma quiere una clave externa única donde no especifiqué @unique.
El siguiente es mi esquema para las dos tablas relevantes ...
model Listings { id Int @id @default(autoincrement()) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt title String @db.VarChar(255) description String? price Float sellerId Int seller Users @relation(fields: [sellerId], references: [id]) } model Users { id Int @id @default(autoincrement()) email String @unique username String @unique password String listings Listings? @relation() }... y mi archivo semilla.
const user1 = await prisma.users.create({ data: { email: 'alice@gmail.com', username: 'alice', password: password, }, }); await prisma.listings.create({ data:{ title: 'iPhone 11', description: 'A new iPhone 11', price: 100.00, sellerId: user1.id } }); await prisma.listings.create({ data:{ title: 'iPhone 11', description: 'A new iPhone 11', price: 100.00, sellerId: user1.id } });En la segunda inserción en Listings se produce el siguiente error.
Environment variables loaded from .env Running seed command `node prisma/seed.js` ... PrismaClientKnownRequestError: Invalid `prisma.listings.create()` invocation: Unique constraint failed on the fields: (`sellerId`) at Object.request (C:\Users\T\projects\souk\server\node_modules\@prisma\client\runtime\index.js:45405:15) at async PrismaClient._request (C:\Users\T\projects\souk\server\node_modules\@prisma\client\runtime\index.js:46301:18) at async main (file:///C:/Users/T/projects/souk/server/prisma/seed.js:68:3) { code: 'P2002', clientVersion: '3.14.0', meta: { target: [ 'sellerId' ] } } An error occured while running the seed command: Error: Command failed with exit code 1: node prisma/seed.jsLa forma en que establecí la relación en la definición de la tabla Usuarios hizo que la relación con la tabla Listados fuera 1:1 cuando quería 1:n
... authorUsers Transactions? @relation("Author") recipientUser Transactions? @relation("Recipient") listings Listings? @relation() wallet Wallets? @relation() } ...A
... authorUsers Transactions? @relation("Author") recipientUser Transactions? @relation("Recipient") listings Listings[] wallet Wallets? @relation() } ...