Skip to content
Back to skills

Db Migration

ASecurity

Planifica y escribe cambios de schema y migraciones de base de datos de forma segura (compatibilidad, backfill, rollback, validación). Usar siempre que un cambio toque el schema o las migraciones, con "/db-migration", "agregá una columna", "cambiá la tabla X" o similar.

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 10, 2026
ai-agentsgosqlvue

Security analysis

A100/100

Scanned October 10, 2026

npx -y skills add lautioliver/barrilete-kit --skill db-migration --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Db Migration?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Db Migration
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/lautioliver-db-migration/badge)](https://www.skillsdirectory.com/skills/lautioliver-db-migration)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: db-migration
description: Planifica y escribe cambios de schema y migraciones de base de datos de forma segura (compatibilidad, backfill, rollback, validación). Usar siempre que un cambio toque el schema o las migraciones, con "/db-migration", "agregá una columna", "cambiá la tabla X" o similar.
---

# Migración de base de datos

Un cambio de schema es de lo más difícil de revertir: los datos ya migrados no vuelven solos. Por eso requiere aprobación (AGENTS.md, Autonomía) y este plan **antes** de escribir la migración.

Los comandos concretos (generar migración, correrla local, tests) están en `AGENTS.md`. TODO: si el proyecto tiene herramienta de migraciones (Drizzle, Prisma, Alembic, SQL a mano…), documentá acá sus particularidades.

## 1. Plan (mostrarlo y esperar aprobación)

Tocar el schema también requiere la aprobación de Autonomía: pedí las dos en el mismo mensaje, con esta tabla. Después la tabla va completa al PR.

| Punto | Qué responder |
|---|---|
| Schema actual | Tablas/columnas/índices/constraints involucrados, tal como están hoy (leelo del código del schema, no de memoria). |
| Schema deseado | El cambio exacto. |
| Compatibilidad | ¿El código desplegado hoy sigue funcionando con el schema nuevo? (durante el deploy conviven versiones). ¿Hay lectores externos (reportes, otros servicios)? |
| Migración | Pasos SQL. ¿Bloquea la tabla? ¿Cuánto tarda con el volumen de producción? |
| Backfill | ¿Hay que completar datos existentes? ¿Cómo, en lotes, idempotente? |
| Rollback | Cómo se vuelve atrás. Si no se puede sin perder datos, decirlo explícitamente. |
| Validación | Cómo se comprueba después que quedó bien (consultas, conteos, tests). |

## 2. Reglas

- **Cambios destructivos en dos pasos** (expand / contract): primero agregar lo nuevo y hacer que el código use ambas cosas; en un PR posterior, cuando nada usa lo viejo, borrarlo. Nunca renombrar ni borrar una columna en uso en un solo deploy.
- Columna nueva `NOT NULL` en tabla con datos: agregar nullable o con default → backfill → recién ahí `NOT NULL`.
- Índices sobre tablas grandes: de forma concurrente si el motor lo permite.
- Invariantes en la base (constraints, `CHECK`, `UNIQUE`) cuando la regla tiene que valer siempre; no solo en el código.
- Las migraciones son inmutables una vez mergeadas: si hay que corregir, migración nueva.
- **Nunca** correr migraciones contra entornos compartidos o producción. Solo local o la base de tests.

## 3. Implementar

1. Cambiar el schema y generar la migración con la herramienta del proyecto. Revisar el SQL generado línea por línea.
2. Correrla en local / tests desde cero y sobre datos existentes.
3. Tests: el comportamiento nuevo, y que los datos viejos sigan siendo válidos.
4. Docs: `docs/reference/domain.md` (y lo que diga `mapa.py`). Si es una decisión de modelo de datos difícil de revertir, ADR.

## 4. PR

En el cuerpo del PR, la tabla del paso 1 completa, incluido el rollback. Si es un cambio en dos pasos, decir en qué paso está y abrir el issue del siguiente (`crear-issue`, bloqueado por este).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.