47 lines
1.9 KiB
SQL
47 lines
1.9 KiB
SQL
-- Remplit les fqdn manquants à partir de hostname + domain_ltd.
|
|
-- Cible : servers où fqdn IS NULL/vide ET domain_ltd renseigné.
|
|
-- Idempotent.
|
|
|
|
\echo '═══ AVANT ═══'
|
|
|
|
SELECT 'fqdn_null' AS scope, COUNT(*) FROM public.servers WHERE fqdn IS NULL OR fqdn = ''
|
|
UNION ALL
|
|
SELECT 'fqdn_null_avec_dltd' AS scope, COUNT(*) FROM public.servers
|
|
WHERE (fqdn IS NULL OR fqdn = '') AND domain_ltd IS NOT NULL AND domain_ltd <> ''
|
|
UNION ALL
|
|
SELECT 'fqdn_null_sans_dltd' AS scope, COUNT(*) FROM public.servers
|
|
WHERE (fqdn IS NULL OR fqdn = '') AND (domain_ltd IS NULL OR domain_ltd = '')
|
|
UNION ALL
|
|
SELECT 'fqdn_total' AS scope, COUNT(*) FROM public.servers WHERE fqdn IS NOT NULL AND fqdn <> '';
|
|
|
|
\echo '═══ APERÇU 10 LIGNES À MAJ ═══'
|
|
|
|
SELECT hostname,
|
|
domain_ltd,
|
|
LOWER(hostname::text) || '.' || REGEXP_REPLACE(domain_ltd, '^\.+', '') AS fqdn_calcule
|
|
FROM public.servers
|
|
WHERE (fqdn IS NULL OR fqdn = '')
|
|
AND domain_ltd IS NOT NULL AND domain_ltd <> ''
|
|
ORDER BY hostname
|
|
LIMIT 10;
|
|
|
|
\echo '═══ UPDATE ═══'
|
|
|
|
UPDATE public.servers
|
|
SET fqdn = LOWER(hostname::text) || '.' || REGEXP_REPLACE(domain_ltd, '^\.+', ''),
|
|
updated_at = NOW()
|
|
WHERE (fqdn IS NULL OR fqdn = '')
|
|
AND domain_ltd IS NOT NULL AND domain_ltd <> '';
|
|
|
|
\echo '═══ APRÈS ═══'
|
|
|
|
SELECT 'fqdn_null' AS scope, COUNT(*) FROM public.servers WHERE fqdn IS NULL OR fqdn = ''
|
|
UNION ALL
|
|
SELECT 'fqdn_null_avec_dltd_residuel' AS scope, COUNT(*) FROM public.servers
|
|
WHERE (fqdn IS NULL OR fqdn = '') AND domain_ltd IS NOT NULL AND domain_ltd <> ''
|
|
UNION ALL
|
|
SELECT 'fqdn_null_sans_dltd' AS scope, COUNT(*) FROM public.servers
|
|
WHERE (fqdn IS NULL OR fqdn = '') AND (domain_ltd IS NULL OR domain_ltd = '')
|
|
UNION ALL
|
|
SELECT 'fqdn_total' AS scope, COUNT(*) FROM public.servers WHERE fqdn IS NOT NULL AND fqdn <> '';
|