| title | Prisma Schema and Migrations |
|---|---|
| impact | HIGH |
| impactDescription | Schema changes affect all downstream code and deployments |
| tags | prisma, database, migrations, schema |
After making changes to the Prisma schema in Cal.com and creating migrations, you need to run:
yarn prisma generateThis updates the TypeScript types. This is especially important:
- When switching Node.js versions
- After adding new fields to models
- After pulling changes that include Prisma schema updates
# Development migration
npx prisma migrate dev --name migration_name
# Production deployment
yarn workspace @calcom/prisma db-deployWhen adding timestamp fields like createdAt and updatedAt:
- Do not set default values if you want existing records to have null values
- Only new records should get timestamps automatically
- For
updatedAtfields, ensure they're updated when records are modified
Whenever you change the schema.prisma file, remember to always consolidate migrations by squashing them as declared in the Prisma docs.
This helps maintain a clean migration history and prevents accumulation of multiple migration files.
If you encounter enum generator errors during the Prisma generate step (like "Cannot find module './enum-generator.ts'"), run yarn install first before trying to generate.
When implementing cache-related features that require timestamp tracking, always update the database schema first before modifying application code that references those fields.