Habilita respuestas múltiples por pregunta (mini-wizard de vínculos). Nueva constraint UNIQUE(response_id, question_id, instance_id). Aplicada en producción. Parte del Sprint 4 hacia v3.0.0.
23 lines
1018 B
SQL
23 lines
1018 B
SQL
-- Sprint 4 (v3.0.0) — instance_id para respuestas multi-instancia
|
|
-- Habilita el mini-wizard de vínculos familiares (una respuesta por familiar)
|
|
-- Nombre original de constraint verificado: answers_response_id_question_id_key
|
|
-- (inline UNIQUE en CREATE TABLE, migración 20260531000001_create_tables.sql, sin renombrado posterior)
|
|
|
|
-- 1. Agregar la columna con default para filas existentes
|
|
ALTER TABLE public.answers
|
|
ADD COLUMN IF NOT EXISTS instance_id text NOT NULL DEFAULT 'default';
|
|
|
|
-- 2. Eliminar la constraint única vieja
|
|
ALTER TABLE public.answers
|
|
DROP CONSTRAINT IF EXISTS answers_response_id_question_id_key;
|
|
|
|
-- 3. Crear la nueva constraint que incluye instance_id
|
|
ALTER TABLE public.answers
|
|
ADD CONSTRAINT answers_response_question_instance_key
|
|
UNIQUE (response_id, question_id, instance_id);
|
|
|
|
-- 4. Índice para consultas por instancia (análisis de vínculos)
|
|
CREATE INDEX IF NOT EXISTS idx_answers_instance
|
|
ON public.answers (question_id, instance_id)
|
|
WHERE instance_id != 'default';
|