Prisma CLI: comandos esenciales
Instalación
Sección titulada «Instalación»Prisma no se instala global — es una dependencia de desarrollo del proyecto, y se corre con npx:
pnpm add -D prismapnpm dlx prisma initbun add -d prismabunx prisma initnpm install -D prismanpx prisma initprisma init crea la carpeta prisma/ con el schema.prisma inicial y un .env de ejemplo para la variable DATABASE_URL.
Generar el cliente
Sección titulada «Generar el cliente»pnpm dlx prisma generatebunx prisma generatenpx prisma generateLee schema.prisma y genera el cliente de TypeScript/JavaScript (@prisma/client) con los tipos de cada modelo. Hay que correrlo de nuevo cada vez que cambia el schema.
migrate dev vs migrate deploy vs db push
Sección titulada «migrate dev vs migrate deploy vs db push»Las tres tocan la base de datos, pero para momentos distintos del ciclo de vida:
pnpm dlx prisma migrate dev # desarrollo: genera migración + la aplica + regenera el clientepnpm dlx prisma migrate deploy # producción/CI: aplica migraciones ya existentes, sin generar nada nuevopnpm dlx prisma db push # prototipado: sincroniza el schema sin crear historial de migracionesbunx prisma migrate dev # desarrollo: genera migración + la aplica + regenera el clientebunx prisma migrate deploy # producción/CI: aplica migraciones ya existentes, sin generar nada nuevobunx prisma db push # prototipado: sincroniza el schema sin crear historial de migracionesnpx prisma migrate dev # desarrollo: genera migración + la aplica + regenera el clientenpx prisma migrate deploy # producción/CI: aplica migraciones ya existentes, sin generar nada nuevonpx prisma db push # prototipado: sincroniza el schema sin crear historial de migracionesmigrate deves el comando del día a día en desarrollo: compara el schema contra la base, genera un archivo SQL de migración nuevo enprisma/migrations/, lo aplica, y (según la versión) regenera el cliente.migrate deployes el que corre en CI/producción: aplica las migraciones que ya están commiteadas en el repo, sin crear ninguna nueva ni pedir confirmación interactiva — pensado para pipelines automatizados.db pushsalta el sistema de migraciones por completo: empuja el schema actual directo a la base. Útil para prototipar rápido o para bases sin necesidad de historial versionado (Prisma lo recomienda para MongoDB), pero no deja rastro de qué cambió ni cuándo.
Explorar los datos
Sección titulada «Explorar los datos»pnpm dlx prisma studiobunx prisma studionpx prisma studioAbre una interfaz visual en el navegador para ver y editar filas de la base de datos sin escribir SQL manualmente.
Sincronizar sin migraciones
Sección titulada «Sincronizar sin migraciones»pnpm dlx prisma db pushbunx prisma db pushnpx prisma db push(ver comparación arriba).
Seed de datos
Sección titulada «Seed de datos»pnpm dlx prisma db seedbunx prisma db seednpx prisma db seedCorre el script de seed configurado en package.json (bajo "prisma": { "seed": "..." }) para poblar la base con datos iniciales o de prueba.
Resumen
Sección titulada «Resumen»| Comando | Cuándo usarlo |
|---|---|
npx prisma init | Primera vez, crea schema.prisma |
npx prisma generate | Regenerar el cliente tras cambiar el schema |
npx prisma migrate dev | Desarrollo — genera y aplica migración nueva |
npx prisma migrate deploy | CI/producción — aplica migraciones existentes |
npx prisma db push | Prototipado rápido, sin historial de migraciones |
npx prisma studio | UI visual para ver/editar datos |
npx prisma db seed | Poblar la base con datos iniciales |
Consideraciones
Sección titulada «Consideraciones»migrate deploynunca genera migraciones nuevas ni pide confirmación — es el único de los tres pensado para correr sin intervención humana en un pipeline.- Mezclar
db pushcon migraciones ya existentes puede desincronizar el historial — conviene elegir un enfoque (migraciones versionadas, odb pushpara prototipo) y no combinarlos en el mismo proyecto. - En versiones recientes de Prisma,
migrate devdejó de disparar automáticamentegeneratey el seed en algunos flujos — si algo no se actualiza solo, correrlo a mano.