2.2 KiB
Seed Data Rules
The generator must create a Prisma seed script so the development database contains minimal sample data. This allows the frontend and API to be used immediately after migration.
Seed Script Location
File: server/prisma/seed.ts
(Or server/prisma/seed.js if the project uses JavaScript; TypeScript is preferred and may require ts-node or tsx to run.)
Seed Data Requirements
The seed script must create minimal sample data for at least one record per main entity, so that:
- List views show data.
- Reference fields (e.g. equipment type, equipment) have valid options.
- The app is demo-ready without manual data entry.
Example scope (TOiR-style domain)
- One EquipmentType (e.g. code
"pump", name"Pump"). - One Equipment (e.g. linked to that type, with required fields filled).
- One RepairOrder (e.g. linked to that equipment, with required fields filled).
Order matters: create EquipmentType first, then Equipment (references type), then RepairOrder (references equipment). Use Prisma create with the generated client; respect unique constraints and foreign keys.
Prisma Seed Configuration
The generator must add the following to server/package.json:
"prisma": {
"seed": "ts-node prisma/seed.ts"
}
If the project uses a different runner (e.g. tsx), use that instead:
"prisma": {
"seed": "tsx prisma/seed.ts"
}
Ensure the seed runner is installed (e.g. ts-node as dev dependency) so that:
npx prisma db seed
runs successfully.
Running the Seed
After migrations:
cd server
npx prisma migrate dev
npx prisma db seed
Or document that the user can run npx prisma db seed once after the first migration to populate sample data.
Summary
| Requirement | Action |
|---|---|
| Seed script | Create server/prisma/seed.ts (or equivalent). |
| Sample data | At least one EquipmentType, one Equipment, one RepairOrder (or equivalent for the DSL). |
| package.json | Add "prisma": { "seed": "ts-node prisma/seed.ts" } (or tsx). |
| Seed runner | Ensure ts-node (or tsx) is available so prisma db seed works. |