63 lines
1.4 KiB
Markdown
63 lines
1.4 KiB
Markdown
# main_db3 → main_db 마이그레이션 계획
|
|
|
|
**날짜**: 2025-09-11
|
|
**목적**: main_db3 데이터를 main_db로 통합
|
|
|
|
---
|
|
|
|
## 현황
|
|
|
|
### main_db3 (삭제 예정)
|
|
- 13개 테이블, 614개 레코드
|
|
- 주요: users(17), company(4), conversation_log(555)
|
|
|
|
### main_db (운영 DB)
|
|
- 11개 테이블, 대부분 비어있음
|
|
- 기존: company(2), team(2)
|
|
|
|
---
|
|
|
|
## 테이블 매핑
|
|
|
|
| main_db3 | main_db | 비고 |
|
|
|----------|---------|------|
|
|
| company | company | 중복 확인 |
|
|
| users | user | team_id 필수 |
|
|
| workspaces | team | 구조 변환 |
|
|
| conversation_log | conversation_log | robeing_id 없음 |
|
|
| gmail_token | gmail_token | 동일 |
|
|
|
|
---
|
|
|
|
## 마이그레이션 순서
|
|
|
|
### Phase 1: 조직 구조
|
|
```sql
|
|
INSERT INTO company SELECT * FROM main_db3.company WHERE id NOT IN (...중복...);
|
|
INSERT INTO team SELECT id, company_id, name FROM main_db3.workspaces;
|
|
```
|
|
|
|
### Phase 2: 사용자 데이터
|
|
```sql
|
|
INSERT INTO "user" (id, team_id, email, name)
|
|
SELECT u.id, COALESCE(wm.workspace_id, '기본팀'), u.email, u.name
|
|
FROM main_db3.users u;
|
|
```
|
|
|
|
### Phase 3: 통합 데이터
|
|
```sql
|
|
INSERT INTO gmail_token SELECT * FROM main_db3.gmail_token;
|
|
INSERT INTO conversation_log SELECT * FROM main_db3.conversation_log;
|
|
```
|
|
|
|
### Phase 4: 검증 및 정리
|
|
- 데이터 개수 확인
|
|
- FK 제약 검증
|
|
- main_db3 삭제
|
|
|
|
---
|
|
|
|
## 참고
|
|
|
|
- `troubleshooting/250911_PostgreSQL_테이블명_단수형_통일.md`
|