-- ============================================================================ -- MIGRATION : info_gares — gare_ids uuid[] + ligne_ids uuid[] -- -- Remplace les colonnes scalaires gare_id / ligne_id par des colonnes tableau -- afin d'autoriser plusieurs gares et plusieurs lignes par info. -- -- À exécuter dans : Supabase Dashboard > SQL Editor -- ============================================================================ -- 1. Ajouter les nouvelles colonnes tableaux (nullables, par défaut vide) ALTER TABLE "public"."info_gares" ADD COLUMN IF NOT EXISTS "gare_ids" uuid[] NOT NULL DEFAULT '{}', ADD COLUMN IF NOT EXISTS "ligne_ids" uuid[] NOT NULL DEFAULT '{}'; -- 2. Migrer les données existantes depuis les colonnes scalaires UPDATE "public"."info_gares" SET gare_ids = CASE WHEN gare_id IS NOT NULL THEN ARRAY[gare_id] ELSE '{}' END, ligne_ids = CASE WHEN ligne_id IS NOT NULL THEN ARRAY[ligne_id] ELSE '{}' END WHERE deleted_at IS NULL; -- 3. Supprimer les anciennes colonnes scalaires -- (décommentez les lignes ci-dessous après avoir vérifié la migration) -- ALTER TABLE "public"."info_gares" DROP COLUMN IF EXISTS "gare_id"; -- ALTER TABLE "public"."info_gares" DROP COLUMN IF EXISTS "ligne_id"; -- NOTE : les colonnes gare_id / ligne_id sont conservées pour l'instant. -- Après validation, décommentez le bloc DROP COLUMN ci-dessus et ré-exécutez. -- 4. Index GIN pour de meilleures performances sur les requêtes @> (contient) CREATE INDEX IF NOT EXISTS idx_info_gares_gare_ids ON "public"."info_gares" USING GIN (gare_ids); CREATE INDEX IF NOT EXISTS idx_info_gares_ligne_ids ON "public"."info_gares" USING GIN (ligne_ids);