53 lines
1.7 KiB
TypeScript
53 lines
1.7 KiB
TypeScript
import { prisma } from "~/server/db";
|
|
import { getAllTrainingsWithMetadata } from "~/lib/content/training";
|
|
|
|
async function seed() {
|
|
const trainings = await getAllTrainingsWithMetadata();
|
|
let instertedTrainings = [];
|
|
|
|
for (const training of trainings) {
|
|
instertedTrainings.push(
|
|
await prisma.training.upsert({
|
|
where: { id: training.metadata.id },
|
|
update: {
|
|
id: training.metadata.id ,
|
|
name: training.metadata.name,
|
|
slug: training.metadata.slug,
|
|
description: training.metadata.description,
|
|
days: training.metadata.days,
|
|
weight: training.metadata.weight,
|
|
draft: training.metadata.draft,
|
|
logoURL: training.metadata.logoURL,
|
|
repositoryURL: training.metadata.repositoryURL,
|
|
priceOpen: training.metadata.priceOpen,
|
|
priceCorporate: training.metadata.priceCorporate,
|
|
content: training.content,
|
|
},
|
|
create: {
|
|
id: training.metadata.id ,
|
|
name: training.metadata.name,
|
|
slug: training.metadata.slug,
|
|
description: training.metadata.description,
|
|
days: training.metadata.days,
|
|
weight: training.metadata.weight,
|
|
draft: training.metadata.draft,
|
|
logoURL: training.metadata.logoURL,
|
|
repositoryURL: training.metadata.repositoryURL,
|
|
priceOpen: training.metadata.priceOpen,
|
|
priceCorporate: training.metadata.priceCorporate,
|
|
content: training.content,
|
|
},
|
|
})
|
|
);
|
|
}
|
|
}
|
|
|
|
seed()
|
|
.then(async () => {
|
|
await prisma.$disconnect()
|
|
})
|
|
.catch(async (e) => {
|
|
console.error(e)
|
|
await prisma.$disconnect()
|
|
process.exit(1)
|
|
});
|