veza/veza-chat-server/migrations/1002_add_missing_uuids.sql

58 lines
2.3 KiB
SQL

-- Migration: Ajout de colonnes UUID aux tables manquantes
-- Création: 2025-01-27
-- Version: 1.0.0
-- Description: Ajoute des colonnes UUID aux tables conversation_members, audit_logs et security_events
-- pour permettre la migration du code Rust de i64 vers Uuid
-- ================================================================
-- TABLE conversation_members
-- ================================================================
-- Ajouter la colonne uuid (cette table n'a pas de colonne id, seulement une PK composite)
ALTER TABLE conversation_members
ADD COLUMN IF NOT EXISTS uuid UUID DEFAULT gen_random_uuid();
-- Ajouter la contrainte UNIQUE
ALTER TABLE conversation_members
ADD CONSTRAINT conversation_members_uuid_unique UNIQUE (uuid);
-- Ajouter la contrainte NOT NULL (après le backfill par default)
-- Note: Les valeurs existantes ont déjà été remplies par DEFAULT, donc on peut ajouter NOT NULL
ALTER TABLE conversation_members
ALTER COLUMN uuid SET NOT NULL;
-- Index pour performance
CREATE INDEX IF NOT EXISTS idx_conversation_members_uuid ON conversation_members(uuid);
-- ================================================================
-- TABLE audit_logs
-- ================================================================
-- Ajouter la colonne uuid (cette table a déjà un id SERIAL)
ALTER TABLE audit_logs
ADD COLUMN IF NOT EXISTS uuid UUID DEFAULT gen_random_uuid();
-- Ajouter la contrainte UNIQUE
ALTER TABLE audit_logs
ADD CONSTRAINT audit_logs_uuid_unique UNIQUE (uuid);
-- Ajouter la contrainte NOT NULL (après le backfill par default)
ALTER TABLE audit_logs
ALTER COLUMN uuid SET NOT NULL;
-- Index pour performance
CREATE INDEX IF NOT EXISTS idx_audit_logs_uuid ON audit_logs(uuid);
-- ================================================================
-- TABLE security_events (block suppressed)
-- ================================================================
-- Table externe non gérée dans ce schéma isolé.
-- ================================================================
-- COMMENTAIRES
-- ================================================================
COMMENT ON COLUMN conversation_members.uuid IS 'UUID unique pour chaque membre de conversation (pour migration i64 -> UUID)';
COMMENT ON COLUMN audit_logs.uuid IS 'UUID unique pour chaque log d''audit (pour migration i64 -> UUID)';