Guía esencial: Comandos de despliegue para Next.js, Prisma y PostgreSQL
Cómo configurar correctamente el despliegue de Next.js con Prisma y PostgreSQL
En Kadev, nuestra agencia de desarrollo de software en Chile, entendemos que el paso a producción es uno de los momentos más delicados de cualquier proyecto. Si estás construyendo una aplicación moderna utilizando Next.js, Laravel o Vue, y has elegido Prisma como tu ORM junto a PostgreSQL, existen configuraciones críticas que no puedes pasar por alto para garantizar una conexión estable con tu base de datos.
Muchos errores de conexión en entornos de staging o producción ocurren porque el cliente de la base de datos no se generó correctamente o las migraciones no se aplicaron antes de que la aplicación intentara ejecutarse. A continuación, te mostramos cómo solucionarlo específicamente para Next.js.
Optimizando el Custom Build Command
Cuando despliegas tu aplicación, el servidor de build necesita conocer la estructura de tu base de datos para generar el cliente de Prisma. Si intentas ejecutar el comando de construcción estándar de Next.js sin este paso previo, es muy probable que encuentres errores de tipos o de referencia.
Por ello, siempre debes configurar tu Custom Build Command de la siguiente manera:
npx prisma generate && next build
Al usar el operador &&, te aseguras de que el cliente de Prisma se genere exitosamente antes de que comience el proceso de compilación de Next.js. Esto es vital para que las Server Actions o el API Route reconozcan correctamente tu esquema de datos.
La importancia del Pre-deploy Command
Generar el cliente es solo la mitad del trabajo. También necesitas asegurar que tu base de datos PostgreSQL en producción tenga las últimas tablas y cambios que definiste en tu archivo schema.prisma. Para automatizar este proceso y evitar intervenciones manuales riesgosas, debes utilizar un Pre-deploy command:
npx prisma migrate deploy
A diferencia de los comandos utilizados en desarrollo, migrate deploy aplica las migraciones pendientes sin intentar resetear la base de datos ni buscar cambios interactivos. Es la forma segura y profesional de mantener tu esquema sincronizado mientras tu aplicación se levanta.
Siguiendo estos pasos en tus proyectos, garantizarás que la comunicación entre el frontend y el backend sea fluida desde el primer segundo del despliegue. En Kadev, aplicamos estos estándares para entregar software robusto y escalable a nuestros clientes.