# 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으로 전체 참조 검색 후 일괄 수정