chore(deploy): MRO 클린 재동기화 + Claude provider flip

- db/105_flip_ai_provider_claude.sql 추가: mro_setting 'ai.provider' UPSERT -> claude (멱등)
- application.yml schema-locations 에 105 등재 (104 시드 이후, mode=always)
- 키 미설정 시 Ollama 자동 폴백 유지 (AiTextRouter)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
DESKTOP-TKLFCPR\ython 2026-07-11 10:52:52 +09:00
parent 8f65c0bdd7
commit 1a15fc56c5
2 changed files with 21 additions and 1 deletions

View File

@ -17,7 +17,7 @@ spring:
init:
# 멱등 스키마·시드(전부 IF NOT EXISTS + ON CONFLICT DO NOTHING). 재실행 안전.
mode: ${SQL_INIT_MODE:always}
schema-locations: classpath:db/schema.sql,classpath:db/104_seed_ai_config.sql
schema-locations: classpath:db/schema.sql,classpath:db/104_seed_ai_config.sql,classpath:db/105_flip_ai_provider_claude.sql
continue-on-error: true
servlet:
multipart:

View File

@ -0,0 +1,20 @@
-- =====================================================================
-- GUARDiA MRO — 105. AI provider 전환: ollama → claude (멱등 UPSERT)
-- 대상 DB : mro_db (테이블 mro_setting, PK=key, 값컬럼=value)
-- 적용 : application.yml spring.sql.init.schema-locations 에 104(시드) 다음으로 등재.
-- mode:always + continue-on-error 재실행 안전.
-- 설명 : 기본 provider(ollama)를 Claude(Anthropic)로 flip 한다.
-- 104(시드)는 ON CONFLICT DO NOTHING 이라 기존 행을 덮지 못하므로,
-- 본 파일에서 명시적 UPSERT(DO UPDATE)로 provider=claude 를 강제한다.
-- 런타임 provider 는 mro_setting.'ai.provider' 단일 출처(AiConfigService).
-- 보안 : Claude API 키는 DB 미저장 — 서버 환경변수 ANTHROPIC_API_KEY 로만 주입.
-- 키/시크릿/IP/비밀번호 일절 미포함. 키 미설정 시 Ollama 자동 폴백(AiTextRouter).
-- 멱등 : 재적용해도 항상 value='claude' 수렴. updated_at 갱신.
-- =====================================================================
SET client_encoding = 'UTF8';
INSERT INTO mro_setting (key, value) VALUES ('ai.provider', 'claude')
ON CONFLICT (key) DO UPDATE SET value = 'claude', updated_at = NOW();
-- end 105_flip_ai_provider_claude.sql