Would you like to delete these indexes? Selecting no will continue the rest of the deployment. 안전한 판단법

주요 포인트 한눈에 보기

Firebase 배포 중 출력되는 Would you like to delete these indexes? 메시지는
Firestore 인덱스 설정 파일과 실제 서버 상태가 서로 달라졌을 때 나타나는 안내 문구입니다.
이 문서에서는 이 질문이 등장하는 정확한 이유와,
y를 선택해야 하는 상황N을 선택해야 하는 상황을 기준 중심으로 정리합니다.

이 메시지가 등장하는 상황

Firebase CLI로 firebase deploy 또는 firebase deploy --only firestore를 실행할 때,
현재 프로젝트에 배포된 인덱스와 firestore.indexes.json 파일의 내용이 일치하지 않으면
아래와 같은 질문이 출력됩니다.

? Would you like to delete these indexes?
Selecting no will continue the rest of the deployment. (y/N)

이 메시지는 오류가 아니라 정리 여부를 묻는 확인 단계입니다.
Firebase는 “더 이상 설정 파일에 존재하지 않는 인덱스”를 서버에서 제거할지 여부를 사용자에게 위임합니다.

Firestore 인덱스 동기화 구조

Firestore 인덱스는 두 곳에 각각 존재합니다.

구분 역할
firestore.indexes.json 로컬 기준 인덱스 정의 파일
Firebase 서버 실제로 생성·사용 중인 인덱스

인덱스를 추가하면 서버에 새 인덱스가 생성되고,
반대로 로컬 파일에서 인덱스를 제거해도 서버 인덱스는 자동으로 삭제되지 않습니다.
이 차이가 누적되면 Firebase가 “정리할까요?”라는 질문을 출력합니다.

Y / N 선택 기준 정리

이 질문에서의 핵심은 해당 인덱스가 실제로 더 이상 필요 없는가입니다.

선택 의미
y 서버에 남아 있는 불필요한 인덱스를 삭제
N 기존 인덱스를 유지한 채 배포만 진행

y를 선택하는 경우는 쿼리를 완전히 제거했거나,
실험용·테스트용 인덱스를 정리하는 시점입니다.
반대로 N은 해당 인덱스를 사용하는 코드가 아직 남아 있거나,
영향 범위를 확신할 수 없을 때 선택합니다.

실무에서의 안전한 판단 흐름

실제 서비스 환경에서는 다음 흐름으로 판단하는 것이 안전합니다.

1. 삭제 대상 인덱스 확인
   → 이 단계에서 Firebase CLI는 삭제 대상 인덱스의 컬렉션·필드 조합을 함께 출력하므로,
     해당 쿼리가 실제 코드에 존재하는지 직접 대조하는 것이 중요합니다.
2. 해당 인덱스를 사용하는 쿼리 존재 여부 점검
3. 과거 데이터 조회·관리자 페이지 사용 여부 확인
4. 확신이 없으면 N 선택 후 추후 정리

인덱스를 삭제해도 데이터가 사라지지는 않지만,
해당 인덱스를 요구하는 쿼리는 즉시 실패합니다.
따라서 이 질문은 단순한 확인이 아니라
쿼리 구조 변경 이력에 대한 최종 점검 단계로 이해하는 것이 정확합니다.

FAQ

Q. y를 눌렀는데 데이터가 삭제되나요?
아닙니다. 인덱스만 제거되며 Firestore 문서 데이터는 영향을 받지 않습니다.
삭제된 인덱스는 필요 시 firestore.indexes.json에 다시 정의한 뒤 재배포하면 언제든 재생성할 수 있습니다.

Q. N을 계속 선택해도 문제 없나요?
기능상 문제는 없지만, 불필요한 인덱스가 누적되면 관리 비용과 혼란이 커질 수 있습니다.

Q. 운영 환경에서는 어떤 선택이 권장되나요?
운영 중인 쿼리가 하나라도 의심되면 N을 선택하고,
충분한 검증 후 인덱스를 정리하는 것이 안전합니다.

이 글이 마음에 드세요?

RSS 피드를 구독하세요!

댓글 남기기