← 전체 글로 돌아가기

DB

SQLite 데이터베이스를 안전하게 배포하고 롤백하기

SQLite 데이터베이스를 볼륨에 저장하는 프로젝트는 배포 전에 백업과 마이그레이션을 미리 확인해야 한다.

SQLite 배포를 준비할 때는 처음부터 정답을 맞히려고 하면 오히려 확인 시간이 길어진다.

핵심은 데이터 계층 전체 흐름을 이해하고, 배포 전에 모든 조건을 확인하는 것이다.

문제 상황 정리

왜 SQLite를 사용하나? 어떤 데이터를 저장하나?

정상 상태가 뭔지 먼저 정해둔다. 스키마는 맞나, 데이터는 완전한가.

데이터 계층 이해하기

데이터 계층에서 화면만 보고 판단하면 놓치는 값이 많다. 스키마, 권한, 백업을 확인해야 한다.

  • 먼저 볼 것: 권한과 스키마
  • 비교할 것: 정상일 때의 상태
  • 기록할 것: 명령어, 실행 결과, 수정한 설정

마이그레이션 확인

배포 전에 마이그레이션이 제대로 돌아가나 확인한다.

npx prisma validate
npx prisma migrate status

펜딩 중인 마이그레이션이 있나? 마이그레이션이 실제로 실행되나?

스키마 확인

데이터베이스 스키마가 코드와 맞는가?

특히 새로운 컬럼을 추가했다면, NOT NULL 설정이 있는지, 기본값이 설정됐는지 확인한다.

백업과 롤백 준비

배포 전에 현재 데이터베이스의 백업을 만든다. 만약 문제가 생기면 이전 상태로 빠르게 돌아갈 수 있어야 한다.

검증

  1. 실제로 같은 조건에서 마이그레이션이 돌아가나 확인한다.
  2. 로그에서 뭐가 실행됐는지 설명한다.
  3. 실제로 데이터가 제대로 조회되나 확인한다.

다음에 비슷한 증상이 나오면 먼저 현재 값을 기록하고, 하나씩 비교하면 된다. 배포 전 확인 기록을 남겨두면 롤백할 때도 도움이 된다.