File size: 1,657 Bytes
aa9892b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
-- 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;