From 0b4a489d01d06f58a494191028c578ad69842f7e Mon Sep 17 00:00:00 2001 From: happybell80 Date: Mon, 13 Oct 2025 00:08:43 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20OAuth=20JSONB=20=ED=82=A4=20=EB=84=A4?= =?UTF-8?q?=EC=9D=B4=EB=B0=8D=20=EB=B0=8F=20=EC=9D=B8=EB=8D=B1=EC=8A=A4=20?= =?UTF-8?q?=EC=A0=84=EB=9E=B5=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - JSONB 예시 추가: slack, google, naverworks 키 명시 - GIN 인덱스 → B-tree 표현식 인덱스로 변경 - 쿼리 형태: oauth_providers->>'slack' = 'U...'에 최적화 - 3개 프로바이더별 인덱스 분리 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- troubleshooting/20251013_oauth_jsonb_multi_provider.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/troubleshooting/20251013_oauth_jsonb_multi_provider.md b/troubleshooting/20251013_oauth_jsonb_multi_provider.md index 334e05f..98447af 100644 --- a/troubleshooting/20251013_oauth_jsonb_multi_provider.md +++ b/troubleshooting/20251013_oauth_jsonb_multi_provider.md @@ -35,6 +35,7 @@ auth-server/app/providers/slack.py:287-288에서 기존 사용자의 oauth_provi ### 2단계: 기존 데이터 변환 - UPDATE "user" SET oauth_providers = json_build_object(oauth_provider, oauth_id)::jsonb WHERE oauth_id IS NOT NULL +- 예시: {"slack": "U0925SXQFDK"} 또는 {"google": "100176844464607664427"} 또는 {"naverworks": "user_id"} ### 3단계: 코드 수정 (6개 파일) @@ -48,8 +49,10 @@ auth-server/app/providers/slack.py:287-288에서 기존 사용자의 oauth_provi - app/providers/naverworks.py:225-226,233-234,243-244 - oauth_providers JSONB 병합 - app/models/user.py:26-27 - oauth_providers JSONB 추가 -### 4단계: GIN 인덱스 추가 -- CREATE INDEX idx_user_oauth_providers ON "user" USING GIN (oauth_providers) +### 4단계: B-tree 인덱스 추가 +- CREATE INDEX idx_user_oauth_slack ON "user" ((oauth_providers->>'slack')) +- CREATE INDEX idx_user_oauth_google ON "user" ((oauth_providers->>'google')) +- CREATE INDEX idx_user_oauth_naverworks ON "user" ((oauth_providers->>'naverworks')) ### 5단계: 테스트 후 기존 컬럼 제거 - ALTER TABLE "user" DROP COLUMN oauth_provider, DROP COLUMN oauth_id