| name | prisma-schema |
| description | Use for database/schema work in apps/server — adding models, fields, relations, indexes, or migrations. The Prisma schema is split into multiple files by domain; this skill keeps edits and migrations in the right place. |
Prisma schema & migrations
The schema is split by domain under apps/server/prisma/schema/ (user.prisma, meeting.prisma, chat.prisma, messaging.prisma, admin.prisma, rbac.prisma, recording.prisma, schema.prisma), configured via apps/server/prisma.config.ts. Migrations live inside apps/server/prisma/schema/migrations.
Steps
- Put the model/field in the domain file it belongs to — don't dump everything in
schema.prisma.
- Keep all queries in repositories (see the
backend-feature skill) — never query Prisma from a controller.
- Generate + migrate through the server workspace:
pnpm --filter @open-meet/server prisma:generate
pnpm --filter @open-meet/server prisma:migrate
- Schema changes are destructive territory — confirm before resetting data.
pnpm db:reset / pnpm db:wipe drop every table.
- If a DTO exposes the new shape, update
packages/types/src/dto/* and the mapping in the service.
Validate
pnpm --filter @open-meet/server prisma:generate && pnpm --filter @open-meet/server typecheck && pnpm --filter @open-meet/server test