Как создать seed.ts и заполнить базу данных(Prisma)

У меня есть файл schema.prisma:

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model User {
  id Int @id @default(autoincrement())
  createdAt DateTime @default(now()) @map("created_at")
  updatedAt DateTime @updatedAt @map("updated_at")
  // Если вы написали два слова в один, то с помощью map сделайте между ними "_"

  email String @unique
  password String

  name String @unique
  avatarPath String @default("/uploads/default-avatar.png") @map("avatar_path")
 
  phone String @default("")

  orders Order[]
  reviews Review[]
  favorites Product[]
}

// Product Order OrderItems Category Review

model Product {
  id Int @id @default(autoincrement())
  createdAt DateTime @default(now()) @map("created_at")
  updatedAt DateTime @updatedAt @map("updated_at")

  name String @unique
  slug String @unique
  description String 
  price Int 
  images String[]

  orderItems OrderItem[]
  reviews Review[]

  category Category? @relation(fields: [categoryId], references: [id])
  categoryId Int? @map("category_id")

  user User? @relation(fields: [userId], references: [id])
  userId Int?

}

model Category {
   id Int @id @default(autoincrement())
  createdAt DateTime @default(now()) @map("created_at")
  updatedAt DateTime @updatedAt @map("updated_at")

  name String @unique
  slug String @unique

  products Product[]
}

model Review {
   id Int @id @default(autoincrement())
  createdAt DateTime @default(now()) @map("created_at")
  updatedAt DateTime @updatedAt @map("updated_at")

  rating Int
  text String 

  user User @relation(fields: [userId], references: [id])
  userId Int @map("user_id")

  product Product @relation(fields: [productId], references: [id])
  productId Int @map("product_id")
}

model Order {
   id Int @id @default(autoincrement())
  createdAt DateTime @default(now()) @map("created_at")
  updatedAt DateTime @updatedAt @map("updated_at")

  status EnumOrderStatus  @default(PENDING)

  items OrderItem[] 

  user User @relation(fields: [userId], references: [id])
  userId Int @map("user_id")


}

model OrderItem {
  id Int @id @default(autoincrement())
  createdAt DateTime @default(now()) @map("created_at")
  updatedAt DateTime @updatedAt @map("updated_at")

  quantity Int 
  price Int

  order Order? @relation(fields: [orderId], references: [id])
  orderId Int? @map("order_id")

  product Product? @relation(fields: [productId], references: [id])
  productId Int @map("product_id")

}

enum EnumOrderStatus {
  PENDING 
  PAYED
  SHIPPED
  DELIVERED
}

Есть seed.ts

import { Category, Prisma, PrismaClient, Product } from "@prisma/client";
import * as dotenv from "dotenv"
import { products } from "./product/productList";

dotenv.config();
const prisma = new PrismaClient()

// const products: Prisma.ProductsCreateInput[] = [
//     {
//         name: "Armatfood. Компот из терна",
//         slug: "armatfood-komot-iz-terna",
//         description: "",
//         price: 205,
//         images: ["https://gurmanarmenia.ru/image/cache/catalog/irafoto/armatfud/tern-228x228.png"],
//         category: "Напитки | Компоты | Соки"
//     }
// ]
const createProducts = await prisma.product.create({
    data: {
        name: "Kerakur. Икра баклажановая",
        slug: "kerakur ikra",
        description: "Икра баклажановая",
        price: 250,
        images: [],
        category: {
            create:{
                name: "Овощная консервация",
                slug: "ovoschnaya-konservatsiya", 
            }
        }
    }
})

async function main() {
    console.log("Start seeding...")   
    for(let product of products) {
        await prisma.product.create({
            data: product
        })
    } 
}

main()
    .catch(e => console.error(e))
    .finally(async () => {
        await prisma.$disconnect()
    })

Не могу заполнить базу данных, хотя у меня есть файл schema.prisma и там я все связи провела, но я не знаю, что нужно написать в seed.ts, чтобы я уже начала писать продукты с разными категориями, посмотрела документацию, разные sourse коды, но там только один пример с юзером и постом, но мне нужно именно знать, как теперь написать такое же, только с продуктами


Ответы (0 шт):