migration-guard
Revisa una migración de base de datos antes de desplegarla para asegurar que sea segura — reversible, no destructiva y compatible hacia atrás — siguiendo las convenciones de base de datos del proyecto
Files1
View on GitHubSKILL.md.claude/skills/migration-guard/SKILL.md
GitHubRevisa la migración que indique la persona (o la del diff actual) en busca de riesgos.
- Lee
docs/conventions/database.mdpara las reglas de migración del proyecto (nomenclatura, reversibilidad, estrategia de índices, tipos de columna permitidos) ydocs/architecture/database.mdpara el modelo de datos actual que toca. - Verifica la reversibilidad: existe un
down/rollback que funcione, o el cambio está documentado explícitamente como irreversible con su justificación. - Revisa la pérdida de datos: eliminar columnas/tablas, reducir tipos o añadir
una columna
NOT NULLsin valor por defecto/backfill. Marca cualquier paso destructivo. - Revisa la compatibilidad hacia atrás para despliegues sin downtime: ¿pueden convivir el código viejo y el nuevo con el nuevo esquema durante el rollout? Prefiere expandir → migrar → contraer en vez de un cambio rompedor de un solo paso.
- Revisa bloqueos / tablas grandes: operaciones que reescriben o bloquean por mucho tiempo tablas grandes (p. ej. añadir una columna not-null, ciertos índices). Sugiere la variante segura para la base de datos del proyecto.
- Confirma un plan de rollback y que la migración sea idempotente / segura de reintentar cuando la herramienta lo permita.
Salida: un veredicto breve (segura / no segura), los riesgos concretos encontrados y
los cambios mínimos para hacerla segura. Si la decisión es relevante (p. ej. una
migración irreversible), recomienda registrar un ADR en
docs/decisions/.
NO ejecutes la migración. NO relajes las reglas de base de datos del proyecto para que una migración pase — corrige la migración en su lugar.