Database Seeding in Prisma
From the Prisma ORM cheat sheet · Seeding & Development · verified Jul 2026
Database Seeding
Populate your database with initial or test data for development
typescript
// prisma/seed.ts
import { PrismaClient } from '../generated/prisma/client'
import { PrismaPg } from '@prisma/adapter-pg'
const prisma = new PrismaClient({ adapter: new PrismaPg({ connectionString: process.env.DATABASE_URL }) })
async function main() {
// Clean existing data
await prisma.post.deleteMany()
await prisma.user.deleteMany()
// Create users with posts
const alice = await prisma.user.create({
data: {
email: 'alice@example.com',
name: 'Alice',
posts: {
create: [
{ title: 'Hello World', published: true },
{ title: 'Prisma is great!' }
]
}
}
})
// Bulk create
await prisma.user.createMany({
data: [
{ email: 'bob@example.com', name: 'Bob' },
{ email: 'charlie@example.com', name: 'Charlie' }
]
})
}
main()
.catch(e => {
console.error(e)
process.exit(1)
})
.finally(() => prisma.$disconnect())
// BASH_BLOCK:
# Run database seeding
npx prisma db seed
# Reset the database (Prisma 7 no longer auto-seeds after reset)
npx prisma migrate reset
# Seed manually after reset
npx prisma db seed💡 Configure the seed command in prisma.config.ts under migrations.seed
⚡ Use createMany for bulk inserts
📌 Clean data before seeding to ensure consistency
✅ Use faker for realistic test data