# Gmail Token 시스템 Slack ID 마이그레이션 ## 문제 상황 (2025-08-25) - UUID 불일치: auth-server `uuid4()` vs skill-email `uuid5()` → 토큰 조회 실패 - DB 스키마 변경 시도했으나 미완성 ## 실제 상태 (2025-09-18 확인) ### 코드 문제 ```python # 현재 코드 (잘못됨) cur.execute(""" SELECT ... FROM gmail_tokens WHERE slack_user_id = %s # 존재하지 않는 컬럼 """, (user_id,)) # 올바른 방법 cur.execute(""" SELECT gt.* FROM gmail_token gt JOIN user u ON gt.user_id = u.id WHERE u.oauth_id = %s AND gt.is_equipped = true """, (slack_id,)) ``` ### DB 스키마 (실제) ```sql CREATE TABLE gmail_token ( id UUID PRIMARY KEY, user_id UUID NOT NULL, -- user 테이블 FK token_data JSONB, -- access_token, refresh_token 포함 equipped_to VARCHAR(50), -- Gmail 계정 is_equipped BOOLEAN DEFAULT false ); -- user.oauth_id에 Slack ID 저장됨 ``` ## 토큰 자동 갱신 (정상 작동) ```python if creds and creds.expired and creds.refresh_token: creds.refresh(Request()) self.creds_provider.save_credentials(user_id, creds) ``` ## 트러블슈팅 ### 토큰 조회 실패 - `slack_user_id` 컬럼 없음 → JOIN 사용 필요 - `is_equipped = true` 확인 ### 자동 갱신 실패 - `refresh_token` 존재 여부 - Google OAuth 설정 확인 ## 관련 문서 - [250831_skill-email_UUID_inconsistency_URGENT.md](./250831_happybell80_skill-email_UUID_inconsistency_URGENT.md)