-- 020_add_management_completion_fields.sql -- 관리함 완료 신청 정보 필드 추가 -- 작성일: 2025-10-26 -- 목적: 완료 사진 및 코멘트 수정 기능 지원 BEGIN; -- 마이그레이션 로그 확인 DO $$ BEGIN -- 이미 실행된 마이그레이션인지 확인 IF EXISTS ( SELECT 1 FROM migration_log WHERE migration_file = '020_add_management_completion_fields.sql' AND status = 'completed' ) THEN RAISE NOTICE '마이그레이션이 이미 실행되었습니다: 020_add_management_completion_fields.sql'; RETURN; END IF; -- 마이그레이션 시작 로그 INSERT INTO migration_log (migration_file, status, started_at, notes) VALUES ('020_add_management_completion_fields.sql', 'running', NOW(), '관리함 완료 신청 정보 필드 추가 - completion_photo, completion_comment 수정 기능'); -- completion_photo_path 컬럼이 없으면 추가 (이미 있을 수 있음) IF NOT EXISTS ( SELECT 1 FROM information_schema.columns WHERE table_name = 'issues' AND column_name = 'completion_photo_path' ) THEN ALTER TABLE issues ADD COLUMN completion_photo_path VARCHAR(500); RAISE NOTICE '✅ completion_photo_path 컬럼 추가됨'; ELSE RAISE NOTICE 'ℹ️ completion_photo_path 컬럼이 이미 존재함'; END IF; -- completion_comment 컬럼이 없으면 추가 (이미 있을 수 있음) IF NOT EXISTS ( SELECT 1 FROM information_schema.columns WHERE table_name = 'issues' AND column_name = 'completion_comment' ) THEN ALTER TABLE issues ADD COLUMN completion_comment TEXT; RAISE NOTICE '✅ completion_comment 컬럼 추가됨'; ELSE RAISE NOTICE 'ℹ️ completion_comment 컬럼이 이미 존재함'; END IF; -- completion_requested_at 컬럼이 없으면 추가 (이미 있을 수 있음) IF NOT EXISTS ( SELECT 1 FROM information_schema.columns WHERE table_name = 'issues' AND column_name = 'completion_requested_at' ) THEN ALTER TABLE issues ADD COLUMN completion_requested_at TIMESTAMP WITH TIME ZONE; RAISE NOTICE '✅ completion_requested_at 컬럼 추가됨'; ELSE RAISE NOTICE 'ℹ️ completion_requested_at 컬럼이 이미 존재함'; END IF; -- completion_requested_by_id 컬럼이 없으면 추가 (이미 있을 수 있음) IF NOT EXISTS ( SELECT 1 FROM information_schema.columns WHERE table_name = 'issues' AND column_name = 'completion_requested_by_id' ) THEN ALTER TABLE issues ADD COLUMN completion_requested_by_id INTEGER REFERENCES users(id); RAISE NOTICE '✅ completion_requested_by_id 컬럼 추가됨'; ELSE RAISE NOTICE 'ℹ️ completion_requested_by_id 컬럼이 이미 존재함'; END IF; -- 마이그레이션 완료 로그 UPDATE migration_log SET status = 'completed', completed_at = NOW(), notes = notes || ' - 완료: 모든 필요한 컬럼이 추가되었습니다.' WHERE migration_file = '020_add_management_completion_fields.sql' AND status = 'running'; RAISE NOTICE '🎉 마이그레이션 완료: 020_add_management_completion_fields.sql'; EXCEPTION WHEN OTHERS THEN -- 에러 발생 시 로그 업데이트 UPDATE migration_log SET status = 'failed', completed_at = NOW(), notes = notes || ' - 실패: ' || SQLERRM WHERE migration_file = '020_add_management_completion_fields.sql' AND status = 'running'; RAISE EXCEPTION '❌ 마이그레이션 실패: %', SQLERRM; END $$; COMMIT;