prisma-cli-db-seed

por prisma

prisma db seed. Referencia al usar esta función de Prisma.

npx skills add https://github.com/prisma/cursor-plugin --skill prisma-cli-db-seed

prisma db seed

Runs your database seed script to populate data.

Command

prisma db seed [options]

What It Does

  • Executes your configured seed script
  • Populates database with initial/test data
  • Runs independently (not auto-run by migrations in v7)

Options

OptionDescription
--configCustom path to your Prisma config file
--Pass custom arguments to seed script

Configuration

Configure seed script in prisma.config.ts:

import 'dotenv/config'
import { defineConfig, env } from 'prisma/config'

export default defineConfig({
  schema: 'prisma/schema.prisma',
  migrations: {
    path: 'prisma/migrations',
    seed: 'tsx prisma/seed.ts',  // Your seed command
  },
  datasource: {
    url: env('DATABASE_URL'),
  },
})

Common seed commands

// TypeScript with tsx
seed: 'tsx prisma/seed.ts'

// TypeScript with ts-node
seed: 'ts-node prisma/seed.ts'

// JavaScript
seed: 'node prisma/seed.js'

Seed Script Example

// prisma/seed.ts
import { PrismaClient } from '../generated/client'

const prisma = new PrismaClient()

async function main() {
  // Create users
  const alice = await prisma.user.upsert({
    where: { email: 'alice@prisma.io' },
    update: {},
    create: {
      email: 'alice@prisma.io',
      name: 'Alice',
      posts: {
        create: {
          title: 'Hello World',
          published: true,
        },
      },
    },
  })

  const bob = await prisma.user.upsert({
    where: { email: 'bob@prisma.io' },
    update: {},
    create: {
      email: 'bob@prisma.io',
      name: 'Bob',
    },
  })

  console.log({ alice, bob })
}

main()
  .then(async () => {
    await prisma.$disconnect()
  })
  .catch(async (e) => {
    console.error(e)
    await prisma.$disconnect()
    process.exit(1)
  })

Examples

Run seed

prisma db seed

With custom arguments

prisma db seed -- --environment development

Arguments after -- are passed to your seed script.

v7 Changes

In Prisma 7, seeding is NOT automatic after migrations:

# v7 workflow
prisma migrate dev --name init
prisma generate
prisma db seed  # Must run explicitly

Previously (v6), migrate dev and migrate reset auto-ran seeds.

Idempotent Seeding

Use upsert to make seeds re-runnable:

// Good: Can run multiple times
await prisma.user.upsert({
  where: { email: 'alice@prisma.io' },
  update: {},  // Don't change existing
  create: { email: 'alice@prisma.io', name: 'Alice' },
})

// Bad: Fails on second run
await prisma.user.create({
  data: { email: 'alice@prisma.io', name: 'Alice' },
})

Common Patterns

Development reset

prisma migrate reset --force
prisma db seed

Conditional seeding

// prisma/seed.ts
const count = await prisma.user.count()
if (count === 0) {
  // Only seed if empty
  await seedUsers()
}

Environment-specific seeds

// prisma/seed.ts
const env = process.env.NODE_ENV || 'development'

if (env === 'development') {
  await seedDevData()
} else if (env === 'test') {
  await seedTestData()
}

Best Practices

  1. Use upsert for idempotent seeds
  2. Keep seeds focused and minimal
  3. Use realistic but fake data
  4. Document required seed data
  5. Version control your seed scripts

Más skills de prisma

prisma-cli-migrate-reset
prisma
prisma migrate reset
official
prisma-cli-validate
prisma
validación de prisma. Referencia al usar esta función de Prisma.
official
prisma-next-extension-upgrade
prisma
Upgrade Prisma Next in your extension. Bumps every `@prisma-next/*` dependency to the requested target (or npm `latest`), runs the per-transition upgrade…
official
adr-review
prisma
Revisar uno o más ADRs con una mirada fresca (como miembro del equipo sin contexto previo), identificar problemas narrativos y estructurales, y luego reescribirlos. Usar cuando el…
official
prisma-next-upgrade
prisma
Upgrade Prisma Next in your app. Bumps every `@prisma-next/*` dependency from the version pinned in the lockfile to the requested target (or npm `latest`),…
official
prisma-cli
prisma
Referencia completa de comandos, opciones y flujos de trabajo de la CLI de Prisma para configuración, migraciones y operaciones de base de datos. Cubre más de 20 comandos organizados por prioridad: configuración (init), generación (generate), desarrollo (dev), operaciones de base de datos (db pull/push/seed/execute) y migraciones (migrate dev/deploy/reset/status/diff/resolve). Incluye cambios de Prisma 7.x: nuevo archivo de configuración prisma.config.ts, indicadores eliminados (--skip-generate, --skip-seed, --schema, --url) y explícito...
official
prisma-client-api
prisma
Referencia completa de la API de Prisma Client para consultas de modelos, operaciones CRUD, filtrado, relaciones y transacciones. Cubre 17 métodos de consulta de modelos, incluyendo findUnique, findMany, create, update, delete, upsert y operaciones masivas con variantes de retorno. Proporciona opciones de consulta para dar forma a los resultados: select, include, omit, orderBy, take, skip, cursor y distinct. Incluye operadores de filtro escalares y lógicos (equals, in, contains, startsWith, lt, gt) además de filtros de relación (some,...
official
prisma-compute
prisma
Prisma Compute deployment and hosting guide. Use whenever the user mentions Prisma Compute, `prisma.compute.ts`, `defineComputeConfig`, deploying or hosting a Prisma app, `@prisma/cli app deploy`, `compute:deploy`, `create-prisma --deploy`, `PRISMA_SERVICE_TOKEN`, `auth workspace`, Compute apps/deployments/build logs/domains, `@prisma/cli agent install`, localhost vs `0.0.0.0`, deploy port binding, or framework deploy readiness for Hono, Elysia, Next.js, TanStack Start, Astro, Nuxt, Svelte,...
developmentdevopsofficial