# 완료 계획서 — DB 정리: 프로젝트 데이터 초기화 - **일자**: 2026-08-08 - **상태**: 완료 (검증 완료) ## 배경 하드 삭제 스위치 도입 후 사용자가 영구저장소의 프로젝트 폴더를 직접 삭제했다. 처음부터 다시 검증하기 위해 DB의 프로젝트 계열 데이터를 모두 비운다. 파일시스템은 사용자가 직접 정리한다. ## 조사 결과 진짜 FK 고아는 0건이었다. CASCADE는 정상 동작했고, 남아 있던 것은 하드 삭제 플래그를 켜기 전에 소프트 삭제된 프로젝트 2건과 그 딸린 데이터였다. ## 구현 및 실행 체크리스트 - [x] 삭제 전 상태 조사 — `projects` 2행(둘 다 소프트 삭제), `project_workflow_stages` 14, `upload_sessions` 11(전부 `project_id IS NULL` = 임시 보관함), `upload_chunks` 14, `temp_upload_batches` 3. 산출물 테이블(`input_files`·`surface_models`·`routes`·`cross_sections`·`outputs` 등)은 전부 0행 - [x] 드라이런으로 삭제 대상 확인 후 트랜잭션 커밋 - [x] `projects` 2행 DELETE → `project_workflow_stages` 14행 CASCADE 소멸 - [x] 임시 보관함 잔여 정리 — `upload_chunks` 14, `upload_sessions` 11, `temp_upload_batches` 3 (`storage/tmp`가 비어 있어 실물 없는 고아 메타데이터였음) - [x] `system_audit_logs`에서 `resource_type='project'` 12행 삭제 (사용자 지시) - [x] 유지 확인 — `users` 1, `companies` 1, `sessions` 6, `trusted_devices` 16, `user_consents` 1. `system_audit_logs`에 남은 1행은 `COMPANY_CREATE`라 프로젝트와 무관 - [x] 파일시스템 미접촉 (사용자가 직접 삭제)