Prisma Migrations
Development Workflow
# Edit schema.prisma, then:
npx prisma migrate dev --name add_user_bio
# This:
# 1. Creates a migration SQL file in prisma/migrations/
# 2. Applies it to your dev database
# 3. Regenerates Prisma Client
Migrations Folder
prisma/migrations/
20240101000000_init/
migration.sql
20240115000000_add_user_bio/
migration.sql
migration_lock.toml
Never edit migration files — create a new migration instead.
Production
# Apply pending migrations (no new migration created)
npx prisma migrate deploy
# Check status
npx prisma migrate status
Seeding
prisma/seed.ts
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function main() {
await prisma.user.upsert({
where: { email: 'admin@example.com' },
update: {},
create: { name: 'Admin', email: 'admin@example.com', password: 'hashed', role: 'ADMIN' },
});
}
main().finally(() => prisma.$disconnect());
package.json
{ "prisma": { "seed": "tsx prisma/seed.ts" } }
npx prisma db seed