Incident Library

IL-0577 Ficilcom · 2026-09-25 (게시일)database

로컬 데이터베이스를 초기화하려던 prisma migrate reset 이 운영 Neon PostgreSQL 데이터베이스를 초기화했다

Ficilcom 은 Turborepo, Prisma, Neon PostgreSQL 을 쓴다. 데이터베이스 관련 코드는 packages/database 에 모여 있고, 그 폴더의 .env 에 있는 DATABASE_URL 이 가리키는 곳이면 로컬이든 운영이든 같은 Prisma 명령이 실행된다. 이를 막는 장치는 없었고, migrate reset 전에 접속 대상이 localhost 인지 확인하는 처리도 없었다.

엔지니어는 연휴 전에 운영 데이터베이스에 마이그레이션을 적용하고 운영 DATABASE_URL 을 .env 에 남긴 채 작업을 멈췄다. 연휴가 끝난 첫날 로컬 데이터베이스를 비우려고 prisma migrate reset 을 실행했고, 이 명령이 운영 데이터베이스를 초기화했다. 시드 데이터가 보이지 않는 것을 보고 실수를 알아챘다.

엔지니어는 Neon 에서 백업을 찾았고 Backup & Restore 기능으로 데이터베이스를 되살렸다. Ficilcom 은 Neon 의 Launch 요금제를 쓰고 있어서 하루 전 시점까지 되돌릴 수 있었다. 서비스가 멈춘 시간은 1시간쯤이었다. 서비스 초기라 고객 데이터는 1건이었고, 접근 로그로 보면 영향은 거의 없었다.

심각도
–
영향 범위
The production database was reset and the service stopped for about an hour
영향 사용자
One customer's data was in the database; access logs showed almost no impact
지역
–
감지까지
–
복구까지
1h

증상

실버 위크 연휴가 끝난 첫날, 엔지니어가 로컬 데이터베이스를 비우고 다시 시작하려고 prisma migrate reset 을 실행하고 시드 데이터를 넣었다. 그런데 시드 데이터가 들어가지 않은 것처럼 보였다.

엔지니어는 처음에 AI 에이전트가 작업을 빼먹었다고 의심했다. 실제로는 로컬이 아니라 운영 데이터베이스가 초기화된 것이었다.

연휴 전에 운영 데이터베이스에 마이그레이션을 적용하면서 packages/database/.env 에 운영 DATABASE_URL 을 넣었고, 그 값을 그대로 둔 채 연휴에 들어갔다. 연휴가 끝난 뒤 엔지니어는 접속 대상을 확인하지 않고 데이터베이스 명령을 실행했다.

증상 데이터 유실

원인

촉발
엔지니어가 로컬 데이터베이스를 대상으로 한다고 믿고 prisma migrate reset 을 실행했는데, packages/database/.env 에 연휴 전에 넣어 둔 운영 DATABASE_URL 이 남아 있었다.

감지

엔지니어가 prisma migrate reset 뒤에 넣은 시드 데이터가 로컬에 보이지 않는 것을 보고, 운영 데이터베이스를 초기화한 것을 알아챘다.

조치

후속 조치

교훈

글쓴이는 기억보다 기록을 믿어야 한다고 정리했다. 오래 손을 놓기 전에는 어중간한 상태를 남기지 않고, 남겨야 하면 메모로 적어 둔다. 데이터베이스를 지우는 명령은 접속 대상이 localhost 가 아니면 실행되지 않아야 한다. 운영 URL 은 개발자 컴퓨터에 두지 않고, AI 에이전트에도 금지 규칙을 둔다. Backup & Restore 는 기능이 있는지와 별도로, 쓰는 요금제의 기간으로 충분한지를 확인해야 한다. 글쓴이는 이번에 피해가 작았던 것은 서비스가 마침 초기였기 때문이라고 했다.

출처

참고 문서

관련 사례

내 클러스터에도 있는지 확인하기

kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이 사례와 같은 상태를 점검합니다. 이 사례의 구성 요소: 데이터베이스. 점검 항목의 근거는 이 사례 같은 공개 보고서입니다.

AI 도구와 스크립트용

API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.