diff --git a/projects/msp-tools/guru-rmm/server/migrations/006_tunnel_sessions.sql b/projects/msp-tools/guru-rmm/server/migrations/006_tunnel_sessions.sql index bd086db..d925d65 100644 --- a/projects/msp-tools/guru-rmm/server/migrations/006_tunnel_sessions.sql +++ b/projects/msp-tools/guru-rmm/server/migrations/006_tunnel_sessions.sql @@ -11,11 +11,13 @@ CREATE TABLE tech_sessions ( opened_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), last_activity TIMESTAMPTZ NOT NULL DEFAULT NOW(), closed_at TIMESTAMPTZ, - status VARCHAR(20) NOT NULL DEFAULT 'active', - CONSTRAINT unique_active_session UNIQUE (tech_id, agent_id, status) - WHERE status = 'active' + status VARCHAR(20) NOT NULL DEFAULT 'active' ); +-- Partial unique index to ensure only one active session per tech-agent pair +CREATE UNIQUE INDEX unique_active_session ON tech_sessions(tech_id, agent_id, status) + WHERE status = 'active'; + -- Index for finding sessions by technician CREATE INDEX idx_tech_sessions_tech ON tech_sessions(tech_id);