# Cómo añadir una migración

Contexto
- Migraciones up-only con checksum estático y función `up(db)`.

Pasos
1) Crear migración
   - Edita src/db/migrations/index.ts y añade una entrada `Migration` con:
     - version (número incremental),
     - name (descriptivo),
     - checksum (string calculado una vez),
     - up: (db) => { ... } con SQL idempotente cuando sea posible (usa helpers como tableHasColumn).

2) SQL y convenciones
   - Timestamps como 'YYYY-MM-DD HH:MM:SS[.mmm]' con strftime.
   - FOREIGN KEYs explícitas y `PRAGMA foreign_keys = ON`.
   - Usa `ON CONFLICT` para upserts cuando aplique.

3) Pruebas
   - En un test, crea `const memdb = new Database(':memory:')` y ejecuta `initializeDatabase(memdb)`.
   - Valida que la tabla/columna existe y que el esquema es el esperado.

4) Despliegue
   - El arranque (`server.start`) invoca `Migrator.migrateToLatest`. No necesitas pasos manuales.

Notas
- No hay “down”; si necesitas revertir, crea una nueva migración correctiva.
- Evita cambios destructivos sin plan de migración de datos.
