-- Migration pour ajouter la colonne importance aux skills -- Compatible avec les bases existantes -- Étape 1: Vérifier si la colonne existe déjà DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM information_schema.columns WHERE table_name = 'skills' AND column_name = 'importance' ) THEN -- Ajouter la colonne importance ALTER TABLE skills ADD COLUMN importance VARCHAR(20) DEFAULT 'standard'; -- Ajouter la contrainte CHECK ALTER TABLE skills ADD CONSTRAINT skills_importance_check CHECK (importance IN ('incontournable', 'majeure', 'standard')); RAISE NOTICE 'Colonne importance ajoutée avec succès'; ELSE RAISE NOTICE 'Colonne importance existe déjà'; END IF; END $$; -- Étape 2: Mettre à jour les technologies incontournables UPDATE skills SET importance = 'incontournable' WHERE name IN ( 'React', 'TypeScript', 'JavaScript', 'Git', 'HTML', 'CSS', 'Node.js', 'Python', 'SQL', 'HTTP', 'REST API', 'JSON', 'GitHub', 'npm', 'yarn', 'package.json' ); -- Étape 3: Mettre à jour les technologies majeures UPDATE skills SET importance = 'majeure' WHERE name IN ( 'Next.js', 'Vue.js', 'Angular', 'Docker', 'Kubernetes', 'AWS', 'Azure', 'Google Cloud', 'MongoDB', 'PostgreSQL', 'Redis', 'GraphQL', 'Webpack', 'Vite', 'Jest', 'Cypress', 'Tailwind CSS', 'Sass', 'Less', 'Redux', 'Zustand', 'Prisma', 'TypeORM', 'Sequelize', 'Express.js', 'Fastify' ); -- Étape 4: Créer l'index s'il n'existe pas DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_indexes WHERE tablename = 'skills' AND indexname = 'idx_skills_importance' ) THEN CREATE INDEX idx_skills_importance ON skills(importance); RAISE NOTICE 'Index idx_skills_importance créé avec succès'; ELSE RAISE NOTICE 'Index idx_skills_importance existe déjà'; END IF; END $$; -- Étape 5: Vérification finale SELECT importance, COUNT(*) as count, STRING_AGG(name, ', ' ORDER BY name) as examples FROM skills GROUP BY importance ORDER BY CASE importance WHEN 'incontournable' THEN 1 WHEN 'majeure' THEN 2 WHEN 'standard' THEN 3 END;