seed.ts
const prisma = new PrismaClient();
async function seed() {
await prisma.tag.deleteMany();
await prisma.event.deleteMany();
// initialize pre-defined tags
await prisma.tag.createMany({
data: Array.from(Object.values(tags), (tags) => {
return Array.from(tags, ({ title, color }) => ({ title, color }));
}).flat(),
});
const seededTags = await prisma.tag.findMany();
// This works
await prisma.event.create({
data: {
address: "",
city: "",
attendees: 0,
creator: "",
date: new Date(),
description: "",
duration: 0,
name: "",
state: "",
zip: "",
tags: { connect: [{ id: seededTags[0].id }] },
},
});
// This gives me an error
await prisma.event.createMany({
data: Array.from({ length: 100 }, () => {
return {
attendees: faker.number.int(100),
description: faker.lorem.paragraphs(1),
name: faker.lorem.words(faker.number.int({ min: 1, max: 6 })),
creator: faker.person.fullName(),
date: faker.date.anytime(),
address: faker.location.streetAddress(),
city: faker.location.city(),
duration: faker.number.int({ min: 1, max: 8 }),
state: faker.location.state({ abbreviated: true }),
zip: faker.location.zipCode(),
tags: {
connect: faker.helpers
.arrayElements(seededTags, faker.number.int(10))
.map(({ id }) => ({ id })),
},
};
}),
});
}
seed()
.then(async () => {
await prisma.$disconnect();
})
.catch(async (e) => {
console.error(e);
await prisma.$disconnect();
process.exit(1);
});