You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			29 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Markdown
		
	
			
		
		
	
	
			29 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Markdown
		
	
| # 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.
 |