agregada funcionalidad realtime postgress, api y ui.
This commit is contained in:
@@ -1,26 +0,0 @@
|
||||
-- Create function and trigger to notify SSE on planilla changes
|
||||
CREATE OR REPLACE FUNCTION notify_planilla_change() RETURNS trigger AS $$
|
||||
DECLARE
|
||||
payload TEXT;
|
||||
BEGIN
|
||||
payload := json_build_object(
|
||||
'table', TG_TABLE_NAME,
|
||||
'operation', TG_OP,
|
||||
'old', row_to_json(OLD),
|
||||
'new', row_to_json(NEW)
|
||||
)::text;
|
||||
PERFORM pg_notify('sse_events', payload);
|
||||
IF TG_OP = 'DELETE' THEN
|
||||
RETURN OLD;
|
||||
ELSE
|
||||
RETURN NEW;
|
||||
END IF;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
DROP TRIGGER IF EXISTS planilla_notify_trigger ON "Planilla";
|
||||
CREATE TRIGGER planilla_notify_trigger
|
||||
AFTER INSERT OR UPDATE OR DELETE ON "Planilla"
|
||||
DEFERRABLE INITIALLY DEFERRED
|
||||
FOR EACH ROW
|
||||
EXECUTE PROCEDURE notify_planilla_change();
|
||||
@@ -1,6 +1,10 @@
|
||||
-- Triggers for other tables to notify SSE channel
|
||||
-- prisma/migrations/20250609211800_notify_others_sse/migration.sql
|
||||
/* 0️⃣ Limpieza */
|
||||
DROP FUNCTION IF EXISTS notify_planilla_change() CASCADE;
|
||||
DROP FUNCTION IF EXISTS notify_generic_change() CASCADE;
|
||||
|
||||
CREATE OR REPLACE FUNCTION notify_generic_change()
|
||||
/* 1️⃣ Función genérica */
|
||||
CREATE OR REPLACE FUNCTION notify_sse_change()
|
||||
RETURNS trigger AS $$
|
||||
DECLARE
|
||||
payload TEXT;
|
||||
@@ -11,7 +15,9 @@ BEGIN
|
||||
'old', row_to_json(OLD),
|
||||
'new', row_to_json(NEW)
|
||||
)::text;
|
||||
|
||||
PERFORM pg_notify('sse_events', payload);
|
||||
|
||||
IF TG_OP = 'DELETE' THEN
|
||||
RETURN OLD;
|
||||
ELSE
|
||||
@@ -20,23 +26,33 @@ BEGIN
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
DROP TRIGGER IF EXISTS cliente_notify_trigger ON "Cliente";
|
||||
CREATE TRIGGER cliente_notify_trigger
|
||||
AFTER INSERT OR UPDATE OR DELETE ON "Cliente"
|
||||
DEFERRABLE INITIALLY DEFERRED
|
||||
FOR EACH ROW
|
||||
EXECUTE PROCEDURE notify_generic_change();
|
||||
|
||||
DROP TRIGGER IF EXISTS tarea_notify_trigger ON "TareaRealizada";
|
||||
CREATE TRIGGER tarea_notify_trigger
|
||||
AFTER INSERT OR UPDATE OR DELETE ON "TareaRealizada"
|
||||
DEFERRABLE INITIALLY DEFERRED
|
||||
FOR EACH ROW
|
||||
EXECUTE PROCEDURE notify_generic_change();
|
||||
|
||||
/* 2️⃣ Drop de triggers viejos (normal o constraint) */
|
||||
DROP TRIGGER IF EXISTS planilla_notify_trigger ON "Planilla";
|
||||
DROP TRIGGER IF EXISTS cliente_notify_trigger ON "Cliente";
|
||||
DROP TRIGGER IF EXISTS tarea_notify_trigger ON "TareaRealizada";
|
||||
DROP TRIGGER IF EXISTS asistencia_notify_trigger ON "Asistencia";
|
||||
CREATE TRIGGER asistencia_notify_trigger
|
||||
AFTER INSERT OR UPDATE OR DELETE ON "Asistencia"
|
||||
DEFERRABLE INITIALLY DEFERRED
|
||||
FOR EACH ROW
|
||||
EXECUTE PROCEDURE notify_generic_change();
|
||||
|
||||
/* 3️⃣ Constraint triggers DEFERRABLE */
|
||||
CREATE CONSTRAINT TRIGGER planilla_notify_trigger
|
||||
AFTER INSERT OR UPDATE OR DELETE ON "Planilla"
|
||||
DEFERRABLE INITIALLY DEFERRED
|
||||
FOR EACH ROW
|
||||
EXECUTE PROCEDURE notify_sse_change();
|
||||
|
||||
CREATE CONSTRAINT TRIGGER cliente_notify_trigger
|
||||
AFTER INSERT OR UPDATE OR DELETE ON "Cliente"
|
||||
DEFERRABLE INITIALLY DEFERRED
|
||||
FOR EACH ROW
|
||||
EXECUTE PROCEDURE notify_sse_change();
|
||||
|
||||
CREATE CONSTRAINT TRIGGER tarea_notify_trigger
|
||||
AFTER INSERT OR UPDATE OR DELETE ON "TareaRealizada"
|
||||
DEFERRABLE INITIALLY DEFERRED
|
||||
FOR EACH ROW
|
||||
EXECUTE PROCEDURE notify_sse_change();
|
||||
|
||||
CREATE CONSTRAINT TRIGGER asistencia_notify_trigger
|
||||
AFTER INSERT OR UPDATE OR DELETE ON "Asistencia"
|
||||
DEFERRABLE INITIALLY DEFERRED
|
||||
FOR EACH ROW
|
||||
EXECUTE PROCEDURE notify_sse_change();
|
||||
|
||||
Reference in New Issue
Block a user