From 1a15fc56c5c1df99ca68e615a0dbba86fcf5536f Mon Sep 17 00:00:00 2001 From: "DESKTOP-TKLFCPR\\ython" Date: Sat, 11 Jul 2026 10:52:52 +0900 Subject: [PATCH] =?UTF-8?q?chore(deploy):=20MRO=20=ED=81=B4=EB=A6=B0=20?= =?UTF-8?q?=EC=9E=AC=EB=8F=99=EA=B8=B0=ED=99=94=20+=20Claude=20provider=20?= =?UTF-8?q?flip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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) --- backend/src/main/resources/application.yml | 2 +- .../db/105_flip_ai_provider_claude.sql | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 backend/src/main/resources/db/105_flip_ai_provider_claude.sql diff --git a/backend/src/main/resources/application.yml b/backend/src/main/resources/application.yml index 5fd2143..599ab66 100644 --- a/backend/src/main/resources/application.yml +++ b/backend/src/main/resources/application.yml @@ -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: diff --git a/backend/src/main/resources/db/105_flip_ai_provider_claude.sql b/backend/src/main/resources/db/105_flip_ai_provider_claude.sql new file mode 100644 index 0000000..5b2f83f --- /dev/null +++ b/backend/src/main/resources/db/105_flip_ai_provider_claude.sql @@ -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