modifiyng-database
Workflow para hacer cambios seguros en Supabase/Postgres (DDL y datos) con migraciones, validación y rollback. USE FOR: crear/alterar tablas, índices, constraints, RLS, seeds y cambios de esquema sin
SKILL.md.github/skills/modifiyng-database/SKILL.md
GitHubModifiyng Database
Objetivo
Aplicar cambios de base de datos en Supabase de forma segura, trazable y reversible, priorizando migraciones, compatibilidad y verificación posterior.
Resultado Esperado
- Cambios de esquema aplicados mediante migraciones versionadas.
- Riesgo de regresión minimizado con validaciones previas y posteriores.
- Compatibilidad protegida para frontend/backend y consumidores legacy.
- Evidencia de seguridad/performance revisada tras cambios.
Entradas Mínimas
- Qué cambio se quiere hacer (tabla, columna, índice, política, seed).
- Motivación del cambio (feature, bugfix, performance, seguridad).
- Impacto esperado en API/queries actuales.
- Entorno de ejecución (local, staging, prod).
Flujo Paso a Paso
1. Definir alcance y riesgo
- Describir cambio exacto (add, alter, drop, rename).
- Clasificar impacto:
Bajo: agregado backward-compatible.Medio: cambio con migración de datos o índice sensible.Alto: drop/rename/restricción que puede romper clientes.
- Confirmar ventanas de despliegue para cambios de riesgo medio/alto.
Chequeo de salida:
- Hay plan explícito de cambio y evaluación de impacto.
2. Inspeccionar estado actual
- Listar tablas, columnas, claves y relaciones relevantes.
- Verificar extensiones/migraciones ya aplicadas.
- Identificar dependencias de consultas activas y rutas API.
Decisiones:
- Si existe ambigüedad de esquema, no migrar hasta resolverla.
- Si hay drift entre ambientes, alinear primero antes del cambio.
Chequeo de salida:
- Se conoce el estado base real antes de modificar.
3. Diseñar migración segura
- Usar migración versionada para DDL (no cambios manuales ad hoc).
- Favorecer patrón expand-and-contract para compatibilidad:
- Expandir (agregar campos/objetos nuevos).
- Migrar consumo/aplicación.
- Contraer (retirar legado en fase posterior).
- Para datos: evitar hardcode de IDs generados dinámicamente.
Decisiones:
- Si el cambio rompe contrato, dividir en 2 o más releases.
- Si requiere backfill costoso, ejecutar por lotes.
Chequeo de salida:
- Migración diseñada con estrategia de compatibilidad y rollback.
4. Aplicar y validar técnicamente
- Aplicar migración en entorno objetivo.
- Verificar:
- esquema resultante,
- claves e índices,
- políticas RLS,
- funciones/triggers afectados.
- Ejecutar queries de humo para rutas críticas.
Chequeo de salida:
- El estado posterior coincide con el diseño esperado.
5. Revisar seguridad y performance
- Ejecutar advisors de seguridad y performance en Supabase.
- Corregir hallazgos críticos antes de cerrar.
- Revisar planes de ejecución de queries sensibles si cambian índices.
Chequeo de salida:
- No quedan alertas críticas abiertas relacionadas al cambio.
6. Cierre operacional
- Documentar migración aplicada, impacto y riesgos residuales.
- Registrar plan de rollback y condiciones de activación.
- Listar tareas de follow-up (limpieza, deprecaciones, optimizaciones).
Chequeo de salida:
- Cambio cerrado con trazabilidad y plan de contingencia.
Reglas de Calidad
- DDL siempre por migración, no por SQL manual aislado.
- Cambios destructivos solo con plan de compatibilidad y rollback.
- Nunca exponer secretos ni depender de datos sensibles en scripts.
- Mantener idempotencia cuando aplique para scripts de datos.
Checklist Rápido
- Alcance y riesgo definidos.
- Estado actual inspeccionado.
- Migración diseñada con compatibilidad.
- Migración aplicada y validada.
- Advisors security/performance revisados.
- Cierre con rollback y documentación.
Prompt de Ejemplo
- "Aplica la skill modifiyng-database para agregar una tabla de sesiones con RLS y rollback plan."
- "Usa modifiyng-database para renombrar una columna sin romper clientes legacy."