Files
pwa/backend/prisma/seed.ts
T

40 lines
1.4 KiB
TypeScript
Raw Normal View History

/**
* Prisma seed: upsert the 11 educational course sessions and assignment definitions.
*
* Run: npm run prisma:seed
* (also invoked by `prisma migrate reset` when configured)
*/
import { seedCourseSessions } from '../src/modules/sessions/seedCatalog.js';
import { PROGRAM_SESSION_COUNT } from '../src/modules/sessions/catalog.js';
import { seedAssignmentDefinitions } from '../src/modules/assignments/assignments.service.js';
import { ASSIGNMENT_DEFINITIONS } from '../src/modules/assignments/definitions.js';
import { disconnectPrisma, prisma } from '../src/lib/prisma.js';
async function main() {
await seedCourseSessions();
const sessionCount = await prisma.courseSession.count();
if (sessionCount < PROGRAM_SESSION_COUNT) {
throw new Error(
`Expected at least ${PROGRAM_SESSION_COUNT} course sessions after seed, found ${sessionCount}`,
);
}
const assignmentCount = await seedAssignmentDefinitions();
if (assignmentCount < ASSIGNMENT_DEFINITIONS.length) {
throw new Error(
`Expected at least ${ASSIGNMENT_DEFINITIONS.length} assignment definitions, found ${assignmentCount}`,
);
}
console.log(`Seeded ${sessionCount} course sessions and ${assignmentCount} assignment definitions`);
}
main()
.catch((err) => {
console.error('Prisma seed failed:', err);
process.exitCode = 1;
})
.finally(async () => {
await disconnectPrisma();
});