patchcenter/migrate_servers_satellite.sql

39 lines
1.4 KiB
SQL

-- Migration : ajoute servers.satellite_url avec backfill auto
-- - DMZ (zone "DMZ" ou domaine "DMZ") → vpdsiasat1.sanef.groupe
-- - Tous les autres → vpdsiasat2.sanef.groupe
-- Champ optionnel (override de la convention par défaut côté code).
-- Idempotent.
ALTER TABLE public.servers
ADD COLUMN IF NOT EXISTS satellite_url text;
-- Backfill DMZ (par zone = 'DMZ' ou nom de domaine contenant 'DMZ')
UPDATE public.servers s
SET satellite_url = 'vpdsiasat1.sanef.groupe',
updated_at = NOW()
FROM public.zones z, public.domain_environments de, public.domains d
WHERE s.zone_id = z.id
AND s.domain_env_id = de.id
AND de.domain_id = d.id
AND s.satellite_url IS NULL
AND (z.is_dmz = true
OR UPPER(z.name) = 'DMZ'
OR UPPER(d.name) LIKE '%DMZ%'
OR UPPER(d.code) = 'DMZ');
-- Backfill tout le reste (LAN par défaut)
UPDATE public.servers
SET satellite_url = 'vpdsiasat2.sanef.groupe',
updated_at = NOW()
WHERE satellite_url IS NULL;
-- Compteurs après backfill
SELECT 'satellite_lan (vpdsiasat2)' AS scope, COUNT(*) AS nb
FROM public.servers WHERE satellite_url = 'vpdsiasat2.sanef.groupe'
UNION ALL
SELECT 'satellite_dmz (vpdsiasat1)' AS scope, COUNT(*) AS nb
FROM public.servers WHERE satellite_url = 'vpdsiasat1.sanef.groupe'
UNION ALL
SELECT 'satellite_null' AS scope, COUNT(*) AS nb
FROM public.servers WHERE satellite_url IS NULL;