Ejecución y gestión de migraciones con Time1M en Node.js
Clase 16 de 36 • Curso de NestJS: Persistencia de Datos con TypeORM
Contenido del curso
- 3
Instalación de Docker en Windows, macOS y Ubuntu
01:35 - 4

Configuración de Postgres en Docker Compose
09:18 - 5

Conexión a Postgres en Docker: Terminal y PgAdmin
15:16 - 6

Conexión de NestJS a Postgres con Node Postgres
07:28 - 7

Inyección de Dependencias en NETJS: Conexión a PostgreSQL
10:49 - 8

Conexión a Bases de Datos con Variables de Entorno en Node.js
13:49
- 9

Implementación de TypeORM con NestJS en Proyectos Node.js
09:14 - 10

Creación de Entidades en ORM para Tiendas Virtuales
07:46 - 11

Implementación del Patrón Repository en NestJS con TypeORM
13:31 - 12

Operaciones CRUD en ProductService usando TypeORM y Postgres
13:35 - 13

Cambio de Postgres a MySQL en Docker para CRUD de Productos
17:28
- 18

Relaciones 1 a 1 en Bases de Datos con TimeORM
18:58 - 19

Manipulación de Relaciones Uno a Uno en Controladores y Servicios
10:28 - 20

Relaciones Uno a Muchos en Bases de Datos con TypeORM
10:36 - 21

Gestión de Relaciones Uno a Muchos en Controladores de API
10:27 - 22

Relaciones Muchos a Muchos en Time1M: Creación y Manejo Práctico
08:38 - 23

Manipulación de Relaciones Muchos a Muchos en Controladores
15:08 - 24

Manipulación de Relaciones Muchos a Muchos con TimeORM en JavaScript
19:09 - 25

Relaciones Muchos a Muchos con Campos Agregados en TimeWareM
16:41 - 26

CRUD de órdenes de compra y gestión de ítems en NestJS
30:07
- 27

Paginación de Productos con Limit y Offset en Controladores API
10:37 - 28

Filtrado de Precios con Rango Usando Between en Time Wareham
10:17 - 29

Indexación de Parámetros en Bases de Datos: Uso y Precauciones
02:56 - 30

Buenas prácticas de nombramiento en JavaScript y bases de datos
17:52 - 31

Serialización y Transformación de Datos en APIs con ClassTransformer
16:55
¿Cómo ejecutar una migración correctamente?
Generar una migración en un proyecto es solo el primer paso. Para aplicar estos cambios a nuestra base de datos, debemos ejecutar la migración y llevar un control de cuáles ya han sido aplicadas. Este proceso es esencial para mantener la integridad de nuestra estructura de datos y asegurar que todos los cambios se incorporen de forma eficiente.
¿Cómo configurar npm para ejecutar migraciones?
Para gestionar efectivamente las migraciones en un proyecto usando Time1M y npm, primero debemos añadir nuevas tareas en nuestro archivo package.json. Estas tareas nos permitirán correr migraciones y monitorear cuáles se han ejecutado.
Ejemplo de comandos a añadir en package.json:
"scripts": {
"migrations:run": "npx time1m run",
"migrations:show": "npx time1m show",
"migrations:drop": "npx time1m drop"
}
¿Qué tareas se deben agregar?
- Run (ejectuar migración): Para aplicar una nueva migración y asegurarse de que está registrada en el control de migraciones.
- Show (mostrar migraciones): Para listar las migraciones que se han ejecutado hasta el momento.
- Drop (borrar datos): Un comando delicado que elimina todas las tablas y datos; debe usarse con precaución.
Para ejecutar la migración simplemente debemos correr el comando desde la terminal:
npm run migrations:run
¿Qué hacer si encuentras errores en la ejecución?
Como es común en la programación, puedes encontrar errores al intentar correr una migración. Si, al ejecutar el comando para correr migraciones, aparece un mensaje de error diciendo que la tabla ya existe, debemos revisar la configuración de nuestro proyecto.
Un posible ajuste es desactivar el modo síncrono si todavía está activado. Esto se hace ajustando la configuración para que el sincronismo se maneje a través de migraciones:
// Configuración del modo síncrono desactivado
sincronizar: false
Además, es posible que debamos usar herramientas adicionales, como pgAdmin, para borrar manualmente tablas existentes, permitiendo que la migración corra sin conflictos.
Usar pgAdmin para gestionar tablas
Al gestionar bases de datos, herramientas GUI como pgAdmin permiten una mayor visibilidad y control. Si necesitamos eliminar tablas previas manualmente, pgAdmin simplifica este proceso:
- Abre el
pgAdminy localiza la tablaproducts. - Elimina la tabla si ya existe para evitar conflictos de duplicado.
- Borra también la tabla
migrationssi así lo deseas para un nuevo comienzo limpio.
¿Cómo verificar migraciones exitosas?
Una vez que la migración se haya corrido sin errores podemos verificar que sus resultados sean correctos. Usando pgAdmin, podemos refrescar nuestras tablas y comprobar si los datos se han registrado correctamente:
- Verifica que la tabla
migrationsestá actualizada. - Asegúrate de que la nueva estructura y los datos de la tabla
productscoinciden con la especificación de la migración.
Finalmente, recuerda que cualquier cambio en los datos debe ser realizado de forma pausada y con control de versiones para mantener la integridad de la base de datos. Sigue explorando y experimentando con comandos adicionales que puedes aplicar consultando la documentación de Time1M. ¡Sigue adelante aprendiendo y perfeccionando tus habilidades en la gestión de bases de datos!