33 lines
1.6 KiB
SQL
33 lines
1.6 KiB
SQL
-- ============================================================================
|
|
-- 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);
|