Configuración de Conexiones a Base de Datos en Heroku y Entorno Local
Clase 20 de 22 • Curso de NestJS: Autenticación con Passport y JWT
Contenido del curso
- 11

Implementación de JSON Web Tokens en APIs para Autenticación Segura
09:42 - 12

Implementación de JWT en Módulo de Autenticación con Variables de Entorno
17:15 - 13

Estrategia y Guardia de Autenticación con JWT en NestJS
16:38 - 14

Extensión de Guardianes JWT en NestJS para Endpoints Públicos
12:39 - 15

Control de Roles y Permisos con JSON Web Tokens en TypeScript
23:08 - 16
Creación de Endpoints Seguros con JWT en NestJS
02:13
- 17

Configuración y Despliegue de MongoDB Atlas en Heroku
06:24 - 18

Configuración de Variables de Entorno en Heroku para MongoDB
16:25 - 19

Configuración de PostgreSQL en Heroku para Node.js
07:32 - 20

Configuración de Conexiones a Base de Datos en Heroku y Entorno Local
11:24 - 21

Migraciones con TimeORM en Producción: Configuración y Ejecución
20:41
¿Cómo configurar las variables de entorno para la conexión de base de datos en Heroku?
Iniciar un proyecto en Heroku y conectarse a una base de datos Postgres puede parecer complicado al principio, pero con la correcta configuración de las variables de entorno, el proceso se simplifica. Heroku proporciona una variable de entorno denominada DATABASE_URL que encapsula todos los datos necesarios para la conexión, eliminando la necesidad de especificar parámetros como usuario, contraseña, host, y puerto de manera individual.
¿Qué cambios realizar en el proyecto para leer la variable DATABASE_URL?
En nuestro proyecto es fundamental realizar cambios para poder leer la variable DATABASE_URL. Antes, teníamos la conexión muy segmentada:
- Protocolo (ej.
Postgres) - Usuario
- Contraseña
- Host
- Puerto
Ahora, debemos integrar estos elementos en una única URL en formato estándar, tanto para entornos de desarrollo como de producción. En este contexto, el formato de la URL sería algo como:
postgres://usuario:contraseña@host:puerto/baseDatos
¿Cómo integrar la configuración en los módulos de base de datos?
Una vez obtenida la URL de conexión, debemos modificar los módulos de base de datos del proyecto. Aquí, pasaremos de leer variables individuales a solo necesitar la URL de conexión. Los pasos serían los siguientes:
- En el módulo donde leemos la configuración de base de datos, cambiaríamos el método actual a la lectura de la variable
POSTGRES_URL. - La variable
POSTGRES_URLcorrespondería al valor deDATABASE_URLproporcionado por Heroku.
Por ejemplo:
const databaseURL = process.env.POSTGRES_URL;
// Usar `databaseURL` para la conexión con el DBMS
¿Qué ajustes realizar antes del 'deployment' en Heroku?
Antes de proceder al deployment, son necesarios unos ajustes:
-
Variables de entorno adicionales: Algunas configuraciones, como
DATABASE_NAME,PORT, o secretos comoAPI_KEYyJW_SECRET, deben ser gestionadas localmente y en Heroku. Asegúrate de que estas claves no se pierdan en producción. -
Validaciones: En la sección de validación de variables, asegúrate de verificar que
DATABASE_URLesté presente cuando se ejecuta en Heroku. -
Configuración SSL: Habilitar la configuración SSL requerida. Para ello, añade lo siguiente en tu configuración de conexiones:
ssl: { rejectUnauthorized: false }
Esta configuración es crítica para asegurar las transmisiones de datos en un entorno de producción.
¿Cómo verificar y depurar después del 'deployment'?
Una vez hecho el deployment, es crucial verificar que las conexiones sean exitosas. Esto se puede hacer visitando la URL donde se haya realizado el deployment. De igual forma, el seguimiento de logs puede proporcionar información valiosa para detectar y solucionar problemas.
Para seguir los logs en tiempo real, usa el siguiente comando:
heroku logs --tail
En caso de errores relacionados con la base de datos, asegúrate de haber corrido todas las migraciones que el esquema de tu base de datos requiere. Este paso es esencial, y su falta puede resultar en mensajes de error indicando tablas o registros inexistentes.
La correcta configuración de las variables de entorno y la adaptación del proyecto para utilizar DATABASE_URL simplifican significativamente el proceso de deployment en Heroku. Mantén la configuración ordenada y comprueba sistemáticamente el buen funcionamiento con logs para combatir posibles errores. ¡Sigue adelante y no dejes de explorar nuevas formas de optimizar y mejorar tu flujo de trabajo con Heroku!