-- TTS 인스턴스 GPU 종류 구분 (2026-05-16). -- admin "TTS 서버 추가" 에서 RTX 3090 / A100 40GB 선택 가능하게 함. -- 회귀 0 가드: 기존 row 는 gpu_kind='rtx_3090' 자동 매핑, 같은 GHCR image 공유. -- -- 이행 단계 (실행 순서): -- 1) 이 SQL 적용 (ALTER TABLE + system_settings INSERT) -- 2) backend 배포 (gpu_kind 인자 처리) -- 3) frontend 배포 (admin UI 드롭다운) -- -- 참조: doc/runbook/tts_a100_migration.md Phase 1 사전 단계 ALTER TABLE public.tts_scale_instances ADD COLUMN IF NOT EXISTS gpu_kind TEXT NOT NULL DEFAULT 'rtx_3090'; -- 기존 row 안전 매핑 (DEFAULT 가 새 row 에만 적용되므로 명시적 UPDATE). UPDATE public.tts_scale_instances SET gpu_kind = 'rtx_3090' WHERE gpu_kind IS NULL OR gpu_kind = ''; -- 향후 확장 대비 CHECK constraint — 새 GPU 추가 시 이 제약을 갱신. ALTER TABLE public.tts_scale_instances DROP CONSTRAINT IF EXISTS tts_scale_instances_gpu_kind_check; ALTER TABLE public.tts_scale_instances ADD CONSTRAINT tts_scale_instances_gpu_kind_check CHECK (gpu_kind IN ('rtx_3090', 'a100_40gb')); -- GPU 별 Vast offer 가격 범위 (search_offers 시 dph 필터). -- 기존 tts_scale_dph_min / tts_scale_dph_max 는 deprecated — rtx_3090 용으로 매핑됨 -- (scale_service.py 가 호환성 위해 fallback 으로 읽음). INSERT INTO public.system_settings(key, value) VALUES ('tts_scale_dph_min_rtx_3090', '0.05'::jsonb), ('tts_scale_dph_max_rtx_3090', '0.15'::jsonb), ('tts_scale_dph_min_a100_40gb', '0.50'::jsonb), ('tts_scale_dph_max_a100_40gb', '1.20'::jsonb) ON CONFLICT (key) DO NOTHING;