the-tip-top-backend/database/migrations/add-demographics-fields.sql
2025-11-17 23:47:54 +01:00

39 lines
1.4 KiB
SQL

-- ============================================
-- MIGRATION: Ajout des champs démographiques
-- ============================================
-- Créer le type ENUM pour le genre
DO $$ BEGIN
CREATE TYPE gender_type AS ENUM ('MALE', 'FEMALE', 'OTHER', 'NOT_SPECIFIED');
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
-- Ajouter les colonnes gender et date_of_birth à la table users si elles n'existent pas
DO $$
BEGIN
-- Ajouter la colonne gender si elle n'existe pas
IF NOT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_name = 'users' AND column_name = 'gender'
) THEN
ALTER TABLE users ADD COLUMN gender gender_type DEFAULT 'NOT_SPECIFIED';
END IF;
-- Ajouter la colonne date_of_birth si elle n'existe pas
IF NOT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_name = 'users' AND column_name = 'date_of_birth'
) THEN
ALTER TABLE users ADD COLUMN date_of_birth DATE;
END IF;
END $$;
-- Créer un index sur gender pour améliorer les performances des requêtes de statistiques
CREATE INDEX IF NOT EXISTS idx_users_gender ON users(gender);
CREATE INDEX IF NOT EXISTS idx_users_date_of_birth ON users(date_of_birth);
-- Commentaires
COMMENT ON COLUMN users.gender IS 'Genre de l''utilisateur: MALE, FEMALE, OTHER, NOT_SPECIFIED';
COMMENT ON COLUMN users.date_of_birth IS 'Date de naissance de l''utilisateur pour les statistiques démographiques';