diff --git a/troubleshooting/251015_slack_install_workspace_id_error.md b/troubleshooting/251015_slack_install_workspace_id_error.md index cced1a0..4c03fa9 100644 --- a/troubleshooting/251015_slack_install_workspace_id_error.md +++ b/troubleshooting/251015_slack_install_workspace_id_error.md @@ -30,25 +30,28 @@ LINE 2: SELECT workspace_id ## 해결 방안 -**로컬 개발자 수정 필요**: slack.py:407-423 +**수정 파일**: auth-server/app/providers/slack.py -- slack.py:408-413: workspace_member 쿼리 제거 -- user.team_id 직접 조회로 변경 -- User 모델 import 추가 필요 (app.models.user) +**수정 내용**: +- 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 존재 가정 -- 실제 테이블 구조 미확인 -- 교훈: 쿼리 작성 전 \d 명령으로 테이블 구조 확인 필수 +- workspace_member.workspace_id 존재 가정, 실제 컬럼 없음 +- tables.md 또는 psql \d 명령으로 테이블 구조 미확인 +- 교훈: 쿼리 작성 전 tables.md 참조 또는 DB 직접 확인 필수 -### 스키마 변경 후 코드 미반영 -- Git 히스토리: 9월 workspace 관련 수정 다수 (커밋 455af87, 59ae0ab) -- DB 스키마 변경 후 참조 쿼리 미검증 +### Raw SQL 사용 위험 +- text() 쿼리 사용 시 컴파일 타임 타입 체크 불가 +- 런타임에만 에러 발견 +- 교훈: ORM (db.query(Model)) 사용으로 타입 안전성 확보 + +### 스키마 변경 추적 부족 +- DB 스키마 변경 후 참조 코드 미검증 - 교훈: 스키마 변경 시 Grep으로 전체 참조 검색 후 일괄 수정 - -### 중간 테이블 설계 오류 -- workspace_member에 workspace/team FK 누락 -- user.team_id로 직접 조회해야 하는 구조 -- 교훈: 다대다 중간 테이블은 양쪽 FK 필수