drizzle/0059_delivery_health_manual.sql
Rama main · réplica de lectura del repositorio original.
ALTER TABLE "delivery_events" ADD COLUMN IF NOT EXISTS "monitor_id" text;
ALTER TABLE "delivery_events" ADD COLUMN IF NOT EXISTS "dead_lettered_at" timestamp with time zone;
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1
FROM pg_constraint
WHERE conname = 'delivery_events_monitor_id_monitors_id_fk'
) THEN
ALTER TABLE "delivery_events"
ADD CONSTRAINT "delivery_events_monitor_id_monitors_id_fk"
FOREIGN KEY ("monitor_id") REFERENCES "public"."monitors"("id")
ON DELETE SET NULL ON UPDATE NO ACTION;
END IF;
END $$;
UPDATE "delivery_events"
SET "dead_lettered_at" = COALESCE("last_attempt_at", "created_at")
WHERE "status" = 'failed' AND "dead_lettered_at" IS NULL;
CREATE INDEX IF NOT EXISTS "delivery_events_queue_due_idx"
ON "delivery_events" USING btree ("status", "next_retry_at", "claim_expires_at", "created_at");