Ejecución y gestión de migraciones con Time1M en Node.js

Clase 16 de 36Curso de NestJS: Persistencia de Datos con TypeORM

Resumen

¿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?

  1. Run (ejectuar migración): Para aplicar una nueva migración y asegurarse de que está registrada en el control de migraciones.
  2. Show (mostrar migraciones): Para listar las migraciones que se han ejecutado hasta el momento.
  3. 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:

  1. Abre el pgAdmin y localiza la tabla products.
  2. Elimina la tabla si ya existe para evitar conflictos de duplicado.
  3. Borra también la tabla migrations si 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:

  1. Verifica que la tabla migrations está actualizada.
  2. Asegúrate de que la nueva estructura y los datos de la tabla products coinciden 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!