Skip to main content

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

  1. Ouvrez le SQL Editor de votre projet Supabase
  2. Copiez le contenu du fichier de migration
  3. Collez dans l’éditeur
  4. Cliquez sur Run
  5. 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.