Database
Migrations
Database migrations with Prisma
Database Migrations
Manage database schema changes with Prisma migrations.
Development Workflow
Quick Sync (db push)
For rapid development, use db:push to sync schema without migrations:
bun run db:pushWarning:
db:pushis for development only. It may cause data loss. Use migrations for production.
Create Migration
Create a migration file for production:
bun run db:migrateThis will:
- Generate SQL migration files
- Apply pending migrations
- Regenerate Prisma Client
Migration Files
Migrations are stored in packages/database/prisma/migrations/:
prisma/migrations/
├── 20240101000000_init/
│ └── migration.sql
├── 20240115000000_add_posts/
│ └── migration.sql
└── migration_lock.tomlCommon Workflows
Adding a New Field
- Update
schema.prisma:
model User {
// ... existing fields
bio String? // New field
}- Create migration:
bun run db:migrate- Name your migration:
add_user_bio
Renaming a Field
- Update schema
- Create migration with
--create-only:
cd packages/database
npx prisma migrate dev --create-only- Edit the migration SQL to use
RENAME COLUMN - Apply:
npx prisma migrate dev
Reset Database
Reset development database (deletes all data):
cd packages/database
npx prisma migrate resetProduction Deployment
Deploy migrations in production:
npx prisma migrate deployNote: Always backup your production database before running migrations.