DOCS/troubleshooting/250918_gmail_token_slack_user_id_column_missing.md
Claude-51124 1d4af9fa05 docs: Gmail 토큰 문제 증상 및 영향 추가
- 현재 문제 섹션 추가 (증상, 영향 계정, 원인)
- HTTP 500 에러 및 영향받는 3개 계정 명시
- 문제를 더 명확하게 설명
2025-09-18 18:21:18 +09:00

1.5 KiB

Gmail Token 조회 실패 - slack_user_id 컬럼 없음

현재 문제 (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 설정 확인

관련 문서