Principe
Les migrations sont des fichiers SQL numérotés qui définissent l’évolution du schéma de base de données. Elles doivent être appliquées dans l’ordre dans le SQL Editor de Supabase.
N’appliquez jamais une migration sans avoir appliqué toutes les précédentes. Chaque migration peut dépendre des tables créées par les migrations antérieures.
Liste des migrations
001 — Schéma initial
Fichier : 001_initial_schema.sql
Statut : ✅ Appliqué
Tables créées : partners, profiles, partner_subscriptions
Fonctions : get_my_partner_id(), get_my_role()
002 — Audit SI Planning
Fichier : 002_si_audit_planning.sql
Statut : ✅ Appliqué
Tables créées : missions, controls, evaluations, attachments
Ajoute le référentiel Maturité SI.
003 — Modèles personnalisés
Fichier : 003_custom_models.sql
Statut : ✅ Appliqué
Permet aux partenaires de créer des référentiels personnalisés.
Tables : custom_frameworks, custom_controls
004 — Profils Admin
Fichier : 004_admin_profiles.sql
Statut : ✅ Appliqué
Ajoute les colonnes role, partner_id et full_name à la table profiles.
Crée les politiques RLS pour les administrateurs.
005 — Correction RLS récursion
Fichier : 005_fix_rls_recursion.sql
Statut : ✅ Appliqué
Corrige une récursion infinie dans les politiques RLS de la table profiles.
Remplace les politiques récursives par des fonctions SECURITY DEFINER.
006 — Hub Produits
Fichier : 006_product_hub.sql
Statut : ✅ Appliqué
Tables créées : products, user_product_access, partner_subscriptions
Fonction : get_my_product_access()
Données initiales : insertion du produit gestu-control
007 — Gëstu Risk
Fichier : 007_gestu_risk.sql
Statut : ✅ Appliqué
Insère le produit gestu-risk dans la table products.
Table créée : risks avec RLS complète.
008 — Demandes d’accès
Fichier : 008_access_requests.sql
Statut : ✅ Appliqué
Table créée : access_requests
Permet aux utilisateurs de demander l’accès à un produit depuis le Hub.
009 — Correction get_my_product_access
Fichier : 009_fix_product_access_fn.sql
Statut : ✅ Appliqué
Modifie get_my_product_access() pour retourner tous les produits actifs (pas seulement ceux souscrits), afin que le Hub puisse afficher les produits non souscrits avec le bouton “Demander l’accès”.
010 — Gëstu Diligence
Fichier : 010_gestu_diligence.sql
Statut : ✅ Appliqué
Insère le produit gestu-diligence dans la table products (coming soon, sort_order: 3).
011 — Gëstu Policy
Fichier : 011_gestu_policy.sql
Statut : ✅ Appliqué
Insère le produit gestu-policy dans la table products (coming soon, sort_order: 4).
Appliquer une migration
- Ouvrez le SQL Editor de votre projet Supabase
- Copiez le contenu du fichier de migration
- Collez dans l’éditeur
- Cliquez sur Run
- Vérifiez qu’il n’y a pas d’erreur dans la console
Chaque migration utilise IF NOT EXISTS et ON CONFLICT DO NOTHING pour être idempotente — vous pouvez la ré-exécuter sans risque si vous n’êtes pas sûr qu’elle a déjà été appliquée.