talk / backend /sql /030_tts_engine_kind.sql
user
Deploy StyleVoiceChat backend
aa9892b
Raw History Blame Contribute Delete
1.7 kB
-- TTS ์ธ์Šคํ„ด์Šค ์—”์ง„ ์ข…๋ฅ˜ ๊ตฌ๋ถ„ (2026-05-18, Phase 0 PoC ํ†ต๊ณผ ํ›„).
-- admin "TTS ์„œ๋ฒ„ ์ถ”๊ฐ€" ์—์„œ Qwen3-TTS (์šด์˜ default) / CosyVoice 3.0 (๋ฒ ํƒ€) ์„ ํƒ ๊ฐ€๋Šฅ.
--
-- ํšŒ๊ท€ 0 ๊ฐ€๋“œ:
-- - ๊ธฐ์กด row ์ž๋™ engine_kind='qwen3' ๋งคํ•‘ (default + UPDATE)
-- - dispatcher ๋ผ์šฐํŒ… = Phase 3 ๊นŒ์ง€ = engine_kind ๋ฌด๊ด€ (admin ๋งŒ ๋ถ„๊ธฐ)
-- - CosyVoice spawn fail โ†’ Qwen3 fallback (Phase 3 dispatcher)
--
-- ์ดํ–‰ ๋‹จ๊ณ„ (์‹คํ–‰ ์ˆœ์„œ):
-- 1) ์ด SQL ์ ์šฉ (ALTER TABLE + UPDATE ๊ธฐ์กด row)
-- 2) backend ๋ฐฐํฌ (engine_kind ์ธ์ž ์ฒ˜๋ฆฌ + GHCR image ๋ถ„๊ธฐ)
-- 3) GHCR `voicetalk-tts-cosyvoice:latest` ๋นŒ๋“œ (.github/workflows/build-tts-cosyvoice-image.yml)
-- 4) frontend ๋ฐฐํฌ (admin UI engine dropdown)
--
-- ์ฐธ์กฐ: doc/runbook/tts_engine_multi.md Phase 1 ์ž‘์—… ๋ถ„ํ•ด
ALTER TABLE public.tts_scale_instances
ADD COLUMN IF NOT EXISTS engine_kind TEXT NOT NULL DEFAULT 'qwen3';
-- ๊ธฐ์กด row ์•ˆ์ „ ๋งคํ•‘ (DEFAULT ๊ฐ€ ์ƒˆ row ์—๋งŒ ์ ์šฉ๋˜๋ฏ€๋กœ ๋ช…์‹œ์  UPDATE).
UPDATE public.tts_scale_instances
SET engine_kind = 'qwen3'
WHERE engine_kind IS NULL OR engine_kind = '';
-- CHECK constraint โ€” ์ƒˆ ์—”์ง„ ์ถ”๊ฐ€ ์‹œ ์ด ์ œ์•ฝ์„ ๊ฐฑ์‹ .
ALTER TABLE public.tts_scale_instances
DROP CONSTRAINT IF EXISTS tts_scale_instances_engine_kind_check;
ALTER TABLE public.tts_scale_instances
ADD CONSTRAINT tts_scale_instances_engine_kind_check
CHECK (engine_kind IN ('qwen3', 'cosyvoice35'));
-- engine_kind ๋ณ„ ์ธ๋ฑ์Šค (์Šค์ผ€์ผ ํ›„ ๋ผ์šฐํŒ… / ์ƒํƒœ ์กฐํšŒ ํšจ์œจ).
CREATE INDEX IF NOT EXISTS idx_tts_scale_engine_status
ON public.tts_scale_instances(engine_kind, status)
WHERE status IN ('free', 'ready', 'warm_stopped');