본문으로 건너뛰기
cccskills
무료GitHub에 공개

data-migrations

DB migrations Postgres: DDL/DML, expand-contract zero-downtime, rollbacks, locks, CONCURRENTLY, batching, multi-tenant.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane스타 3(GitHub 3 + cccskills 0)
연동 도구PostgreSQL

실행 점수 미검증

설치 방법 보기

포함된 파일(5)

  • SKILL.md5.1 KB
  • references/anti-patterns.md549 B
  • references/batching.md373 B
  • references/checklist.md610 B
  • references/expand-contract.md947 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Data Migrations — Educabot

Route

Intención del usuarioModoQué hace
"nueva migration", "agregar columna", "crear tabla", "rename"CREATEGenera archivos .up.sql + .down.sql con naming correcto
"correr migrations", "aplicar", "migrate up", "deploy migration"RUNValida staging → ejecuta → confirma estado
"revertir", "rollback", "deshacer migration", "migrate down"ROLLBACKVerifica .down.sql, evalúa riesgo, ejecuta con backup previo
"qué migrations hay", "estado", "pendientes", "aplicadas"STATUSmigrate version + lista pendientes vs aplicadas

Regla: si la intención combina CREATE + RUN, hacer en ese orden. Si es ROLLBACK destructivo, pedir confirmación explícita.


Migraciones de DB sin romper producción. Stack: Postgres con golang-migrate (Go) o Prisma Migrate (TS).

Cuándo usar / NO usar

UsarNO usar
Schema: CREATE/ALTER TABLE, ADD COLUMN, índicesSeeds de datos de prueba (usar fixtures)
Data: backfills, transformaciones, normalizacionesLookup tables triviales de dev local
Rename/drop columnas o tablas en prodScripts one-shot limpieza manual (usar job)
ALTER TYPE, split/merge tablas, multi-tenantCambios de config app (env/config)

Herramientas

StackToolArchivos
Go (default)golang-migrate/migratemigrations/NNNNNNNNNNNNNN_nombre.up.sql + .down.sql
TS (Prisma)Prisma MigrateSi usa Prisma como ORM
TS (pg directo)node-pg-migrateSi usa pg sin ORM
TS (Drizzle)drizzle-kitSi stack Drizzle

Alinear herramienta con ORM elegido. No mezclar dos sistemas en mismo repo.

Naming

Formato: YYYYMMDDHHMMSS_description.up.sql + .down.sql. Timestamp UTC (no secuenciales). Description snake_case con verbo (add_, create_, drop_, alter_, backfill_). Una migration = un cambio lógico atómico. Nunca editar migration ya mergeada a main.

Zero-downtime: expand-contract

Todo breaking change se divide en múltiples releases (expand → backfill → dual-write → migrate reads → contract).

→ Read references/expand-contract.md for fases detalladas y breaking changes multi-step

Índices

  • Siempre CREATE INDEX CONCURRENTLY en tablas con datos (no bloquea writes)
  • No puede correr dentro de transacción — usar -- +migrate NoTransaction (golang-migrate) o --create-only + editar SQL (Prisma)
  • Si falla: queda INVALID → DROP INDEX → reintentar

Locks y timeouts

ALTER TABLE toma ACCESS EXCLUSIVE LOCK. Patrón seguro: SET lock_timeout = '5s'; SET statement_timeout = '30s'; antes del ALTER. Si no consigue lock → falla rápido → retry con backoff. ADD COLUMN con DEFAULT no-volátil es instantáneo desde PG 11. ADD COLUMN NOT NULL DEFAULT <volátil> reescribe tabla — evitar.

Batching (data migrations grandes)

Keyset pagination (id > last_id), batch 10k, checkpoints, idempotente, job separado.

→ Read references/batching.md for reglas completas de batching

Rollback

  • DDL aditivo (ADD/CREATE) → reversible con DROP
  • DDL destructivo (DROP) → one-way, datos perdidos
  • Data migration lossy → one-way
  • Siempre escribir .down.sql (aunque sea NO-OP documentado)
  • One-way críticos: backup previo obligatorio

Staging y CI

  • Staging = subset anonimizado de prod. Correr toda migration antes que prod. Medir tiempo.
  • CI (obligatorio en PR): up desde limpio → down → up otra vez (valida reversibilidad + idempotencia). Lint SQL si configurado.

Multi-tenant

PatrónCómoCuándo
Shared schema (default Educabot)Una migration global, backfills consideran todos tenant_idSaaS standard
Schema-per-tenantRunner itera tenants, trackea fallo parcialAislamiento medio
Database-per-tenantMáximo aislamientoSolo enterprise compliance

Anti-patterns

→ Read references/anti-patterns.md for lista completa (12 items)

Delegación

  • /db-diagram — ER diagram post-migration
  • /deploy-check — checklist deploy con migration
  • /audit-dev — revisión integral migrations acumuladas
  • /scaffold-go — setup golang-migrate en proyecto nuevo

Checklist

→ Read references/checklist.md for checklist completo (12 items)

  • Expand-contract pattern used for all breaking schema changes
  • Both .up.sql and .down.sql files exist for every migration
  • lock_timeout and statement_timeout configured before ALTER statements
  • Migration tested and timed in staging with production-like data
  • Rollback verified by running .down.sql then .up.sql again
  • Indexes created with CONCURRENTLY outside transactions on populated tables

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Plan, design, and implement A/B tests and experiments with statistical rigor. Covers hypothesis frameworks, sample sizing, metrics, and result analysis.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Web/mobile accessibility decision guide: WCAG 2.2 AA, ARIA, keyboard nav, focus management, contrast, testing. Use for: a11y, accessibility, wcag, aria, screen reader, keyboard, contrast.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Generate, iterate, and scale ad creative for paid advertising across Google, Meta, LinkedIn, and X. Covers platform specs, creative frameworks, and quality validation.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Musica interactiva para juegos: layering vertical, re-secuenciacion horizontal, stingers, reglas de transicion con sync points, y mapeo de estados de gameplay a musica. Usar para: musica adaptativa, sistema de musica dinamica, transiciones musicales, combat music.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Design multi-agent systems, create agent architectures, define communication patterns, and build autonomous agent workflows with structured evaluation frameworks.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Inter-agent communication protocol for C-suite agent teams. Defines invocation syntax, loop prevention, isolation rules, response formats, and quality loops.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

SebastianLuser의 스킬 모두 보기

이 스킬의 문제 신고