Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
-- ============================================================
|
||||
-- Omika Diagnostic Center -- 005_diagnostics_client_context.sql
|
||||
-- Tâche 13-A : contexte client / serveur / environnement (additif).
|
||||
-- ============================================================
|
||||
-- IDEMPOTENT : ADD COLUMN IF NOT EXISTS + CREATE INDEX IF NOT EXISTS.
|
||||
-- AUCUN DROP, AUCUNE suppression, AUCUNE migration destructive.
|
||||
-- PostgreSQL 18 compatible (syntaxe disponible depuis 9.6).
|
||||
--
|
||||
-- Ajoute au diagnostic_event trois dimensions de contexte de déploiement,
|
||||
-- NULLABLES : les événements antérieurs restent parfaitement valides
|
||||
-- (client_code = NULL, server_instance = NULL, environment = NULL),
|
||||
-- AUCUN backfill, AUCUNE valeur inventée (« UNKNOWN »/« N/A » interdits).
|
||||
--
|
||||
-- client_code : CodeClient de référence = ClientBase.CL_Code
|
||||
-- (identifiant NON secret du client Omika, jamais
|
||||
-- Client.CL_CodeClient, CL_CleAPIInstall, clé licence,
|
||||
-- ActorKey ni nom société).
|
||||
-- server_instance : identifiant d'instance serveur (configuré, ex.
|
||||
-- « API-SRV-01 ») — T13-D.
|
||||
-- environment : environnement ASP.NET (Development / Production / …).
|
||||
--
|
||||
-- CHOIX DE TYPE (cohérence schéma) : le schéma existant utilise TEXT sans
|
||||
-- VARCHAR ni CHECK de longueur (priority, level, component, app_version…).
|
||||
-- On reste cohérent : colonnes TEXT, PAS de CHECK de longueur arbitraire.
|
||||
-- La validation de longueur (<= 100 / <= 100 / <= 20) sera portée par le
|
||||
-- code au moment de la résolution (T13-D), comme pour les autres champs.
|
||||
-- ============================================================
|
||||
|
||||
ALTER TABLE diagnostic_event
|
||||
ADD COLUMN IF NOT EXISTS client_code TEXT,
|
||||
ADD COLUMN IF NOT EXISTS server_instance TEXT,
|
||||
ADD COLUMN IF NOT EXISTS environment TEXT;
|
||||
|
||||
-- Recherche support « tous les diagnostics d'un client » : index composé
|
||||
-- (client_code, timestamp_utc DESC), aligné sur le style de
|
||||
-- ix_diagnostic_event_actor_key_timestamp (002).
|
||||
--
|
||||
-- PAS d'index dédié sur server_instance : aucun usage immédiat ne justifie
|
||||
-- le coût d'écriture/maintenance d'un second index composé (T13 — « composite
|
||||
-- éventuel »). À réévaluer en T13-F si un filtre serveur devient un hot path.
|
||||
--
|
||||
-- PAS d'index sur environment : très faible cardinalité (2-3 valeurs), un
|
||||
-- index serait peu sélectif et sans bénéfice réel.
|
||||
CREATE INDEX IF NOT EXISTS ix_diagnostic_event_client_code_timestamp
|
||||
ON diagnostic_event (client_code, timestamp_utc DESC);
|
||||
Reference in New Issue
Block a user