- 1

Instalación y configuración inicial de NestJS para APIs
06:28 - 2

Instalación del CLI de NestJS y primer proyecto con API
11:29 - 3

Creación de endpoints dinámicos para consultar usuarios en NestJS
20:23 - 4

Operaciones CRUD en APIs REST con Postman
23:37 - 5

Método PUT para actualizar usuarios con ID automático
19:42 - 6

Códigos de estado HTTP y manejo de errores en APIs con NestJS
16:07 - 7

DTOs y validación automática de datos en APIs con NestJS
19:31 - 8

Patrón de servicios e inyección de dependencias en NestJS
25:09 - 9

Configuración de variables de entorno en NestJS
20:44 - 10

Creación y organización de módulos en NestJS para aplicaciones escalables
12:26 quiz de Fundamentos y Primer CRUD
Configuración de migraciones de base de datos con TypeORM
Clase 22 de 35 • Curso de Backend con NestJS
Contenido del curso
- 11

Configuración de PostgreSQL con Docker y Docker Compose
16:08 - 12

Configuración de PostgreSQL con TypeORM en aplicaciones NestJS
12:17 - 13

Creación de entidades ORM con decoradores en TypeScript
09:17 - 14

Implementación del Repository Pattern con TypeORM en NestJS
29:55 - 15

Relaciones uno a uno entre usuarios y perfiles en PostgreSQL
17:00 - 16

Actualización de DTOs con mapped types en NestJS para perfil y usuario
38:56 - 17

Generación automática de módulos CRUD con NestJS y AI
25:34 - 18

Relaciones uno a muchos con TypeORM en NestJS
17:56 - 19

Creación de entidad Category con relaciones many-to-many en NestJS
15:28 - 20

Relaciones many-to-many con TypeORM y validación de arrays
17:40 - 21

Reutilización de servicios entre módulos en NestJS
09:04 - 22

Configuración de migraciones de base de datos con TypeORM
23:01 - 23

Migraciones de base de datos sin pérdida de información
20:46 quiz de Base de Datos y Persistencia con TypeORM
- 24

Cómo proteger contraseñas con hashing usando Bcrypt en NestJS
10:15 - 25

Serialización de datos para excluir campos sensibles en APIs
04:13 - 26

Configuración de autenticación con Passport en NestJS
19:16 - 27

Implementación de endpoint de login con Node.js y NestJS
09:09 - 28

Implementación de JSON Web Token para autenticación en NestJS
16:15 - 29

Protección de endpoints con JWT guards en NestJS
11:34 - 30

Automatización de user ID en APIs con JWT
11:48 quiz de Autenticación y Autorización
- 31

Integración del SDK de OpenAI en Node.js para automatizar contenido
28:26 - 32

Documentación automática de APIs con Swagger en NestJS
15:59 - 33

Preparar una API Node.js para producción: seguridad y despliegue
10:46 - 34

Desplegar aplicación Node.js a producción con Railway y PostgreSQL
21:11 - 35

Desarrollo de API REST escalable con NestJS en producción
02:36
Mantener el control de los cambios en una base de datos es fundamental, especialmente en proyectos modernos donde la estructura evoluciona mientras el negocio crece. Aquí conocerás cómo implementar migraciones en bases de datos usando TypeORM junto a NestJS, asegurando integridad y organización a lo largo del desarrollo.
¿Por qué es importante versionar una base de datos con migraciones?
Al igual que el código fuente se versiona con herramientas como Git, las bases de datos pueden gestionarse mediante migraciones. Esto permite aplicar, rastrear y revertir cambios en las tablas o columnas, protegiendo tus datos y facilitando colaboraciones entre equipos.
- Los cambios en la base de datos (agregar, quitar tablas o columnas) afectan directamente a la aplicación y a los usuarios.
- El uso de migraciones asegura que el esquema esté sincronizado en todos los entornos: local, pruebas y producción.
- TypeORM, como ORM, ofrece herramientas CLI y una API para manipular migraciones de forma segura y replicable.
¿Cómo se configura TypeORM para manejar migraciones en NestJS?
Para gestionar migraciones correctamente, TypeORM usa dos conexiones distintas: una para la aplicación NestJS y otra para su CLI. Ambas deben configurarse para acceder a la base de datos, pero con archivos de ajuste separados.
- Es recomendable crear una carpeta
databasedentro de la carpetasrc, donde se colocará el archivoconfig.ts, necesario para la CLI. - Esta configuración debe leer variables de ambiente (
process.envydotenv) para definir credenciales, puertos y rutas de entidades. - Es clave que las entidades mantengan un nombre uniforme (
*.entity.ts) para que TypeORM las reconozca automáticamente al generar migraciones. - Debe desactivarse la sincronización automática (
synchronize: false) tanto en la app como en la CLI para evitar cambios inesperados.
¿Qué comandos de TypeORM CLI permiten trabajar con migraciones?
El CLI de TypeORM integrado con NestJS gestiona migraciones mediante scripts de NPM y comandos específicos.
migration:generate: Genera automáticamente el archivo de migración con base en los cambios detectados en las entidades.migration:create: Permite escribir migraciones personalizadas, útil para modificaciones específicas y delicadas.migration:run: Aplica las migraciones pendientes a la base de datos.migration:show: Muestra el historial de migraciones ejecutadas y pendientes.
Para su integración:
- Exponer TypeORM CLI usando scripts en
package.json, apuntando al archivo de configuración adecuado. - Es común trabajar con proyectos empaquetados en CommonJS; verificar esto en
ts.configasegura compatibilidad.
¿Cómo se inicializan y gestionan las migraciones en la base de datos con TypeORM?
La gestión efectiva de migraciones requiere limpiar el estado previo y generar los archivos necesarios:
- Se recomienda realizar un
docker compose down -vpara borrar contenedores y volúmenes de la base de datos en desarrollo, asegurando un esquema limpio. - Tras levantar de nuevo los servicios (
docker compose up -d), se genera la migración inicial (init migration). - TypeORM creará un archivo de migración en la carpeta indicada, usando un identificador timestamp para ordenar su aplicación.
- Estas migraciones traducen las entidades actuales en instrucciones SQL que crean tablas, índices, relaciones y constraints.
- Una tabla especial,
Migrations, se genera automáticamente para rastrear el estado y versión aplicada.
¿Cómo verificar y aplicar los cambios realizados en las migraciones?
Comprobar y ejecutar migraciones es sencillo con TypeORM y su CLI:
- Usar el comando
showpara ver si hay migraciones pendientes o problemas de conexión. - Realizar ajustes en las entidades y generar nuevas migraciones cada vez que haya cambios.
- Aplicar las migraciones con
run; TypeORM solo ejecuta las pendientes y marca en la tabla de control cuando se aplicaron correctamente. - Visualizar en el cliente de la base de datos cómo se crea la estructura y cómo evoluciona el esquema de acuerdo a las migraciones activas.
¿Tienes dudas sobre cómo aplicar migraciones en tu flujo de trabajo NestJS y TypeORM? Comparte tu experiencia o pregunta en los comentarios. ¡La gestión de la base de datos puede ser tan ordenada como el código fuente!