- 250825 → 250918 날짜 변경 - slack_id_migration → slack_user_id_column_missing - 실제 문제를 반영한 파일명으로 변경
1.5 KiB
1.5 KiB
Gmail Token 시스템 Slack ID 마이그레이션
문제 상황 (2025-08-25)
- UUID 불일치: auth-server
uuid4()vs skill-emailuuid5()→ 토큰 조회 실패 - DB 스키마 변경 시도했으나 미완성
실제 상태 (2025-09-18 확인)
코드 문제
# 현재 코드 (잘못됨)
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 스키마 (실제)
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 저장됨
토큰 자동 갱신 (정상 작동)
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 설정 확인