Saltar al contenido principal

Esquema y migraciones

Dónde está el esquema de verdad​

En supabase/migrations/. Y solo ahí.

backend/schema.sql no es el esquema

Hay un archivo backend/schema.sql que parece el esquema y no lo es: es un volcado parcial y viejo. Si lo tomas como referencia vas a hablar de tablas que ya no existen y a ignorar la mitad de las que sí. La fuente de verdad son las migraciones.

Cambiar el esquema​

Nunca se toca la base a mano desde el panel de Supabase. Siempre una migración:

supabase migration new descripcion_del_cambio
# editar el archivo generado en supabase/migrations/
supabase db push --include-all

Al hacer merge a dev, el pipeline aplica las migraciones al proyecto de test antes de desplegar. Al promover a main, lo mismo contra producción. El detalle está en Operaciones.

Escribe siempre la primera línea del archivo como un comentario -- que explique el cambio: es lo que aparece en la columna de descripción de la tabla de abajo.

Reglas​

Migraciones idempotentes. create table if not exists, drop policy if exists antes de create policy. Una migración que falla al reaplicarse bloquea el despliegue.

Nada de datos de un tenant concreto en una migración. Las migraciones son estructura y catálogos globales (CIE-10, por ejemplo). Los datos de un cliente van por los scripts de alta de backend/scripts/.

RLS en toda tabla nueva. El frontend accede a Supabase con la clave anónima y depende enteramente de RLS para el aislamiento entre tenants. Una tabla sin políticas es una fuga de datos entre clientes, no un descuido menor.

El backend se salta RLS. Usa la clave de servicio, así que cualquier consulta suya tiene que filtrar por tenant explícitamente. Aquí no hay red de seguridad.

Historial​

Generado automáticamente desde supabase/migrations/*.sql al construir el sitio. No se edita a mano: se actualiza con yarn gen en docs/.
FechaMigraciónTablas que toca
2026-11-16data import platform
=============================================================================
import_external_ids
import_job_errors
import_jobs
import_mappings
import_tenant_settings
2026-11-15health list records document
=============================================================================
—
2026-11-14bot quick messages
Mensajes rápidos por bot
bot_quick_messages
2026-11-13appointment substatus
Agenda: sub-estados de cita (etiqueta con color encima del estado base)
scheduling_appointments
2026-11-13agenda resource tags and indexes
Agenda: etiquetas en los recursos e índices para tenants grandes
scheduling_resource_tags
crm_tags
2026-11-12kiosk via installer
=============================================================================
kiosk_devices
kiosk_pairing_requests
2026-11-11pedido examenes sexo y fecha
=============================================================================
—
2026-11-11preparar documento con obligatorios
=============================================================================
—
2026-11-11emitir con campos requeridos
=============================================================================
—
2026-11-09permiso marca borrador
=============================================================================
—
2026-11-08platform error events
Registro de errores de plataforma: la traza de lo que les falla a los usuarios
platform_error_events
2026-11-07marca borrador admin tenant
=============================================================================
—
2026-11-06modelos por nodo
---------------------------------------------------------------------------
—
2026-11-05bot subflows
Biblioteca de subflujos por tenant: trozos de flujo reutilizables entre bots
bot_subflow_versions
bot_subflows
2026-11-04membrete roto al guardar
=============================================================================
—
2026-11-03certificados sin membrete duplicado
=============================================================================
—
2026-11-02membretes incompletos
=============================================================================
—
2026-11-02bot approvals
=============================================================================
bot_approvals
bot_turns
2026-11-01membretes todos los tenants
=============================================================================
—
2026-10-31membretes consultorios reaplicar
=============================================================================
—
2026-10-30health record close
=============================================================================
—
2026-10-29doc assets limite
=============================================================================
—
2026-10-29membretes consultorios
=============================================================================
—
2026-10-28base templates completas
=============================================================================
—
2026-10-27template columns and catalog
=============================================================================
—

Mostrando 25 de 224 migraciones. El esquema completo son 105 tablas creadas a lo largo de todo el historial.

Copiar producción a test​

Existe un módulo de sincronización que copia datos de producción al entorno de test, accesible solo para superadmin y visible en los dos entornos. Está documentado en la sección correspondiente de Operaciones.