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
Back to the full Prisma ORM cheat sheet