DOCS/troubleshooting/251015_slack_install_workspace_id_error.md
happybell80 e38b337832 docs: Slack 봇 설치 오류 문서 수정 (완벽한 지시서로)
- 해결 방안: 구체적인 수정 위치 및 내용 명시
- 교훈: Raw SQL 위험성, ORM 사용 권장 추가
- 코드 블록 제거, 파일명:줄번호 형식 준수

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 18:33:07 +09:00

1.7 KiB

Slack 봇 설치 workspace_id 컬럼 오류

날짜: 2025-10-15 작성자: 51123 서버 관리자 관련 파일: auth-server/app/providers/slack.py:408-418


문제 상황

Slack 연동 버튼 클릭 시 Internal Server Error:

column "workspace_id" does not exist
LINE 2: SELECT workspace_id
       FROM workspace_member

에러 로그: auth-server 로그에서 sqlalchemy.exc.ProgrammingError 확인

원인 분석

DB 구조

  • workspace_member 테이블: workspace_id 컬럼 없음 (id, user_id, role, is_active만 존재)
  • slack.py:408-413: 존재하지 않는 컬럼 조회 시도

실제 관계

  • user.team_id → team.id
  • Workspace = Team (workspace.py:113)
  • user.team_id가 workspace_id 역할

해결 방안

수정 파일: auth-server/app/providers/slack.py

수정 내용:

  • slack.py:408-413: text() 쿼리 삭제
  • slack.py:408: db.query(User).filter(User.id == user_id).first()로 변경
  • slack.py:409-410: user.team_id 존재 확인 (없으면 HTTPException 404)
  • slack.py:418: workspace_id = user.team_id

참고: User는 slack.py:19에 이미 import됨

교훈

DB 스키마 검증 누락

  • workspace_member.workspace_id 존재 가정, 실제 컬럼 없음
  • tables.md 또는 psql \d 명령으로 테이블 구조 미확인
  • 교훈: 쿼리 작성 전 tables.md 참조 또는 DB 직접 확인 필수

Raw SQL 사용 위험

  • text() 쿼리 사용 시 컴파일 타임 타입 체크 불가
  • 런타임에만 에러 발견
  • 교훈: ORM (db.query(Model)) 사용으로 타입 안전성 확보

스키마 변경 추적 부족

  • DB 스키마 변경 후 참조 코드 미검증
  • 교훈: 스키마 변경 시 Grep으로 전체 참조 검색 후 일괄 수정