docs: rb8001 PostgreSQL 저장 완전 해결 - Foreign key 처리 추가
- 1차 시도: UUID 변환 (Foreign key 위반 발생) - 2차 해결: users 테이블 확인 로직 추가 - 등록 사용자만 user_id, 비등록은 slack_user_id 사용 - Foreign key 제약 유지하며 모든 대화 저장 가능 - 커밋: 84d124a, 5a0af8a
This commit is contained in:
parent
a23c02a659
commit
ec4865aefd
@ -2,9 +2,9 @@
|
||||
|
||||
## 작성일: 2025-08-26
|
||||
## 작성자: 51124 서버 담당
|
||||
## 상태: 부분 해결 (ChromaDB ✅, PostgreSQL ❌)
|
||||
## 영향: PostgreSQL conversation_logs 저장 실패 (UUID 타입 불일치)
|
||||
## 최종 업데이트: 2025-08-26 18:30
|
||||
## 상태: ✅ 완전 해결 (ChromaDB ✅, PostgreSQL ✅, Foreign key ✅)
|
||||
## 영향: PostgreSQL conversation_logs 정상 저장
|
||||
## 최종 업데이트: 2025-08-26 19:30
|
||||
|
||||
---
|
||||
|
||||
@ -215,9 +215,9 @@ print('Collections:', client.list_collections())
|
||||
## 10. 우선순위
|
||||
**중간** - ChromaDB는 정상 작동하므로 기본 기능은 유지됨. PostgreSQL 저장만 실패
|
||||
|
||||
## 11. 수정 후 상태 (2025-08-26 18:30 업데이트)
|
||||
## 11. 수정 후 상태 (2025-08-26 19:00 업데이트)
|
||||
- **ChromaDB**: ✅ 정상 저장 및 조회 가능
|
||||
- **PostgreSQL**: ❌ UUID 타입 에러로 저장 실패 (수정 필요)
|
||||
- **PostgreSQL**: ✅ UUID 변환 로직 추가로 정상 저장
|
||||
|
||||
---
|
||||
|
||||
@ -249,7 +249,45 @@ print('Collections:', client.list_collections())
|
||||
### 12.4 핵심 문제
|
||||
**51124 서버의 rb8001이 UUID 형식이 아닌 user_id를 보내서 PostgreSQL 저장 실패**
|
||||
|
||||
### 12.5 다음 단계
|
||||
1. rb8001 코드에 UUID 변환 로직 추가 필요
|
||||
2. slack_user_id 필드 활용하여 원본 ID 보존
|
||||
3. Gateway JWT 시크릿 키 동기화 확인
|
||||
### 12.5 해결 과정
|
||||
|
||||
#### 1차 시도 (2025-08-26 19:00) - UUID 변환
|
||||
✅ **적용된 해결책**
|
||||
- **router.py:309-378** UUID 변환 로직 추가
|
||||
- UUID가 아닌 경우 UUID5로 변환
|
||||
- **문제 발견**: Foreign key 제약 위반 (users 테이블에 없는 UUID)
|
||||
|
||||
#### 2차 해결 (2025-08-26 19:30) - Foreign key 처리
|
||||
✅ **최종 해결책**
|
||||
1. **router.py:344-391** users 테이블 확인 로직 추가
|
||||
- UUID 형식 & users 테이블 존재 → user_id에 저장
|
||||
- UUID 형식 & users 테이블 없음 → user_id는 NULL, slack_user_id에 저장
|
||||
- 비-UUID (Slack ID, 문자열) → user_id는 NULL, slack_user_id에 저장
|
||||
|
||||
2. **database.py:56** 스키마 수정 유지
|
||||
- slack_user_id 컬럼 (VARCHAR) - 원본 ID 보존
|
||||
- user_id (UUID/NULL) - Foreign key 제약 준수
|
||||
|
||||
3. **Git 커밋 및 배포**
|
||||
- 1차 커밋: 84d124a (UUID 변환)
|
||||
- 2차 커밋: 5a0af8a (Foreign key 해결)
|
||||
- Gitea Actions 자동 배포 → 51124 서버
|
||||
|
||||
### 12.6 최종 처리 로직
|
||||
| 케이스 | users 테이블 | user_id 저장 | slack_user_id 저장 |
|
||||
|--------|-------------|-------------|------------------|
|
||||
| 등록된 UUID 사용자 | ✅ 존재 | UUID 값 | NULL |
|
||||
| 미등록 UUID | ❌ 없음 | NULL | UUID 값 |
|
||||
| Slack ID (U0925SXQFDK) | - | NULL | U0925SXQFDK |
|
||||
| 문자열 (test_user) | - | NULL | test_user |
|
||||
| happybell80 | - | NULL | happybell80 |
|
||||
|
||||
### 12.7 검증된 장점
|
||||
- ✅ Foreign key 제약 유지
|
||||
- ✅ 모든 대화 저장 가능
|
||||
- ✅ users 테이블 오염 방지
|
||||
- ✅ slack_user_id로 사용자 추적 가능
|
||||
- ✅ 나중에 사용자 등록 시 매핑 가능
|
||||
|
||||
### 12.8 남은 작업
|
||||
⚠️ **Gateway JWT 에러**: "Signature verification failed" (별도 이슈로 처리)
|
||||
Loading…
x
Reference in New Issue
Block a user