ARQ-001ArquitecturaAntes de lanzar
Convertir schema.sql en migraciones versionadas y re-ejecutables
- Dificultad
- Avanzada
- Estimación
- 3d
- Estado
- En revisión · @dumonde-lab
- Habilidades
- postgressqlsupabase-clirls
Zona sensible. Toca permisos, datos personales, el mapa, secretos o la identidad de marca. Necesita revisión de la titular y conviene haber completado alguna tarea antes.
Contexto
supabase/schema.sql es un único archivo que no se puede volver a ejecutar: las políticas se crean sin drop policy if exists y alter publication supabase_realtime add table falla si la tabla ya está. Una asociación que despliega hoy no tiene forma segura de actualizar su base mañana. Es el bloqueo principal para la durabilidad y para el modelo multi-instancia.
Qué hacer
- Crea
supabase/migrations/con la convención de Supabase CLI (<AAAAMMDDHHMMSS>_<dominio>_<que>.sql). - Copia el esquema actual, sin cambios de comportamiento, en una migración de línea base
…_base.sql. Mueve elinsert into forosasupabase/seed.sql. - Separa en
…_compat_supabase.sqllo propio de Supabase (publicación realtime, grants aanon/authenticated) y documenta qué haría falta para Postgres puro (shimauth.uid()). - Sustituye
schema.sqlpor un aviso que remita amigrations/: que no haya dos fuentes de verdad. - Documenta en README y docs/guias/asociaciones.md cómo instalar desde cero (
supabase db push) y cómo marcar la línea base en una instancia existente (supabase migration repair --status applied <versión>). - Añade a CONTRIBUIR: las migraciones publicadas no se editan; lo destructivo, en dos pasos (expand/contract).
Criterios de aceptación
Aplicar todas las migraciones sobre un Postgres vacío (
supabase db reset) termina sin erroresEl
pg_dump --schema-onlyresultante equivale al delschema.sqlactualUna base creada con el
schema.sqlantiguo queda al día marcando la línea base y aplicandodb push, sin pérdida de datosREADME y docs/guias/asociaciones.md ya no dicen «pega y ejecuta schema.sql»
La titular revisa el PR (toca RLS)