feat: importance in db and mentorcard home colors
This commit is contained in:
72
scripts/migrations/add_skill_importance.sql
Normal file
72
scripts/migrations/add_skill_importance.sql
Normal file
@@ -0,0 +1,72 @@
|
||||
-- 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;
|
||||
Reference in New Issue
Block a user