실수로 Cloudflare D1 데이터베이스를 삭제하셨나요? 이제 API를 통한 복구에는 삭제 시점부터 7일의 기간만 주어집니다. 변경 사항은 2026년 10월 23일에 발표되었으며, 삭제한 지 7일이 지난 데이터베이스에 대한 요청은 오류로 처리됩니다. 긴급 상황이라면 데이터베이스 ID를 확인하고 가능한 한 빨리 undelete 요청을 보내세요.

변경된 사항
복구 메서드에는 계정 ID와 삭제된 데이터베이스의 UUID가 필요하며, 요청 본문에 새 이름을 지정할 수 있습니다. 기본적으로 데이터베이스는 이전 이름으로 복구됩니다. 계정 내 다른 데이터베이스가 이미 해당 이름을 사용 중이라면 복구를 위해 new_name을 지정해야 합니다. 이러한 조건은 D1 undelete API 레퍼런스에 나와 있습니다.
복구 기간은 7일, 즉 7 × 24시간입니다. 따라서 달력상의 날짜만으로는 충분하지 않습니다. 삭제 시각을 기록하고 요청을 보내는 시각과 비교하세요. 기한이 얼마 남지 않았다면 먼저 복구 요청을 보내고, 그다음 이름과 데이터를 확인하세요.
진행 절차
- 삭제된 데이터베이스를 찾습니다. 로그, 인프라 코드 또는 사고 관련 정보를 통해 account ID와 database ID를 확인하세요. API 경로에는 데이터베이스 UUID가 사용되므로 표시 이름만으로는 요청을 보낼 수 없습니다.
- 복구 가능 기간을 확인합니다. 삭제 후 7일이 지나지 않았는지 확인하세요. Cloudflare는 실수로 삭제한 사실을 발견하면 즉시 요청을 보내도록 권장합니다.
- 이름 충돌을 해결합니다. 이전 이름이 이미 사용 중이라면
new_name에 사용 가능한 값을 지정하세요. 그렇지 않다면 이름을 변경할 필요가 없습니다. - 문서화된 메서드를 호출합니다. API 경로는
POST /accounts/{account_id}/d1/database/{database_id}/undelete입니다. 필요한 권한이 있는 API 토큰으로 요청을 인증하고 비밀 정보를 로그에 기록하지 마세요. - 결과를 확인합니다. 성공 응답을 받은 뒤 데이터베이스가 예상한 이름으로 계정에 나타나는지 확인하고, 애플리케이션이 올바른 인스턴스에 연결되는지도 점검하세요.
Undelete와 Time Travel은 서로 다른 문제를 해결합니다
Undelete는 삭제된 데이터베이스를 복구합니다. Time Travel은 시간 또는 bookmark를 기준으로 기존 데이터베이스의 상태를 복원합니다. Cloudflare 문서에 따르면 최근 30일간의 기록을 사용할 수 있지만 실제 기간은 요금제에 따라 달라집니다. Undelete 후에는 Time Travel로 복구 이전 시점이나 bookmark로 되돌릴 수 없습니다. 운영 중인 데이터베이스의 데이터가 잘못된 경우에는 Time Travel을 사용하고, 삭제된 객체는 정해진 기간 안에 undelete를 이용해 복구하세요.
운영 절차에 7일 복구 기간 확인을 포함하고, 사고 로그에 데이터베이스 ID와 삭제 시각을 함께 기록하세요. 이렇게 하면 올바른 요청을 빠르게 보내고 식별자를 찾거나 이름 충돌을 확인하는 데 시간을 허비하지 않을 수 있습니다.