Migraciones Manuales en SQLite: Creación y Ejecución

Clase 14 de 27Curso de Backend con Node.js: Base de Datos con PostgreSQL

Resumen

¿Cómo configurar migraciones manuales con SQLite?

SQLite es un motor poderoso cuando se trata de manejo de bases de datos locales, aunque exige un enfoque manual para la creación y gestión de migraciones. A diferencia de ORMs populares como Django o Laravel, SQLite no genera automáticamente migraciones basadas en cambios del modelo. Pero no te preocupes, ¡aquí te ayudaremos a entender cómo hacerlo!

¿Cómo crear el boilerplate para las migraciones?

Primero, es esencial entender cómo iniciar una migración en SQLite:

  1. Configurar scripts de migración: Define tareas específicas que permitan correr migraciones.

    • Crea una nueva tarea llamada migrations:generate.
    • Ejecuta el comando npm run migrations generate <nombre>. Este comando genera un nuevo archivo de migración en la carpeta de migraciones.
  2. Estructura básica: Al correr el comando anterior, obtendrás un archivo con un identificador de time stamp y un boilerplate listo para definir qué cambios realizar.

¿Cómo implementar migraciones a partir de los modelos?

Para empezar a crear migraciones, se necesita reutilizar la información ya definida en los modelos:

  • Modelo de usuario: Implementar cambios en los modelos de usuario usando require para importar los datos necesarios como:

    • Modelo de usuario
    • Esquema
    • Nombre de la tabla
  • API de SQLite: Utilizar la API de SQLite para ejecutar comandos como create table o incluso realizar un rollback.

¿Cómo ejecutar y revertir migraciones?

Veamos cómo correr estas migraciones de manera efectiva:

  1. Correr migraciones:

    • Implementa un nuevo comando, npm run migrations:run, que ejecutará db:migrate.
    • Esto detectará y correrá todas las migraciones pendientes en la carpeta migrations.
  2. Revertir migraciones:

    • Usa db:migrate:undo para revertir la última migración realizada.
    • Considera un comando adicional, clean, que eliminará todas las migraciones; úsalo con precaución ya que puede borrar toda la información si estás en un entorno de producción.
  3. Mantenimiento y control: SQLite crea una tabla meta donde almacena el historial de migraciones ejecutadas para evitar duplicaciones.

¿Cómo usar migraciones para modificar estructuras existentes?

Es común necesitar modificar estructuras ya existentes en la base de datos:

  • Ejemplo de after table: Si necesitas agregar nuevas columnas post-creación de una tabla, se realiza mediante una migración específica.

Con este enfoque metódico y claro, puedes gestionar y mantener control de tus migraciones en SQLite, asegurando un flujo de trabajo ordenado y productivo. ¡Adelante, sigue explorando y dominando el mundo de las migraciones!