Infraestructura · 6 min
Cron + pg_net: automatización nocturna desde PostgreSQL
Tu base de datos puede ser el scheduler. Así se configura.
Carlos Copisrad · 13 mayo 2026
pg_cron: el cron dentro de Postgres
pg_cron es una extensión que permite ejecutar queries SQL en un schedule definido por expresiones cron, directamente dentro de PostgreSQL. En Supabase está disponible en todos los planes Pro y superiores.
Combinación con pg_net
La combinación pg_cron + pg_net permite orquestar flujos completos desde SQL:
-- Ejecutar todos los días a las 3am UTC
SELECT cron.schedule(
'reporte-nocturno',
'0 3 * * *',
$$
SELECT net.http_post(
url := 'https://n8n.copisrad.cloud/webhook/reporte-diario',
headers := jsonb_build_object(
'Content-Type', 'application/json',
'x-audit-token', current_setting('app.webhook_token')
),
body := jsonb_build_object(
'fecha', NOW()::DATE,
'tipo', 'reporte_diario'
)
);
$$
);
Gestionar jobs existentes
-- Ver todos los cron jobs
SELECT * FROM cron.job;
-- Desactivar un job
SELECT cron.unschedule('reporte-nocturno');
-- Ver historial de ejecuciones
SELECT * FROM cron.job_run_details
WHERE jobid = (SELECT jobid FROM cron.job WHERE jobname = 'reporte-nocturno')
ORDER BY start_time DESC LIMIT 20;
Casos de uso prácticos
- Sincronización nocturna con ERP o CRM externos
- Generación y envío de reportes por email
- Limpieza de datos temporales y archivos de auditoría
- Actualización de métricas agregadas para dashboards
- Backup de tablas críticas a storage externo
Monitoreo
Agregar a cada flujo nocturno un registro en una tabla ejecuciones_cron con el resultado. Configurar una alerta si no hay registro de ejecución exitosa en las últimas 26 horas.
¿Querés implementar esto en tu empresa? Escribinos. Diagnóstico de 30 minutos sin compromiso.