60 lines
1.3 KiB
Markdown
60 lines
1.3 KiB
Markdown
# Workspace 테이블 통합 계획
|
|
|
|
**날짜**: 2025-08-31
|
|
**목표**: company + workspaces → workspaces로 통합
|
|
|
|
---
|
|
|
|
## 현재 문제
|
|
|
|
### 중복 데이터
|
|
- Company-X가 양쪽 테이블에 존재
|
|
- 컬럼명 불일치 (`container_port` vs `robeing_port`)
|
|
- FK 관계 불일치 (slack_workspaces → company, workspace_member → workspaces)
|
|
|
|
### 코드 오류
|
|
- `workspace.workspace` (잘못된 참조)
|
|
- `workspace.robeing_port` (컬럼명 불일치)
|
|
|
|
---
|
|
|
|
## 마이그레이션 계획
|
|
|
|
### Phase 1: DB 백업
|
|
```bash
|
|
sudo -u postgres pg_dump -t company -t workspaces main_db > /backup/workspace.sql
|
|
```
|
|
|
|
### Phase 2: 데이터 통합
|
|
```sql
|
|
-- 1. company → workspaces 이동
|
|
INSERT INTO workspaces (id, name, subdomain, robeing_port)
|
|
SELECT id, name, subdomain, container_port FROM company;
|
|
|
|
-- 2. slack_workspaces FK 수정
|
|
ALTER TABLE slack_workspace
|
|
ADD COLUMN workspace_id UUID,
|
|
DROP COLUMN company_id;
|
|
|
|
-- 3. company 테이블 삭제
|
|
DROP TABLE company CASCADE;
|
|
```
|
|
|
|
### Phase 3: 코드 수정
|
|
- `auth-server/app/models/workspace.py`: company_id → workspace_id
|
|
- `auth-server/app/api/slack_router.py`: workspace.workspace 제거
|
|
|
|
---
|
|
|
|
## 검증
|
|
|
|
1. 모든 workspace 조회 성공
|
|
2. slack_workspaces FK 정상
|
|
3. 기존 기능 정상 작동
|
|
|
|
---
|
|
|
|
## 참고
|
|
|
|
- `troubleshooting/250911_PostgreSQL_테이블명_단수형_통일.md`
|