Skip to content

배포 중 liquibase checksum 검증 실패를 복구한다#116

Merged
NaMinhyeok merged 2 commits into
mainfrom
codex/liquibase-checksum-hotfix
Apr 21, 2026
Merged

배포 중 liquibase checksum 검증 실패를 복구한다#116
NaMinhyeok merged 2 commits into
mainfrom
codex/liquibase-checksum-hotfix

Conversation

@NaMinhyeok
Copy link
Copy Markdown
Contributor

개요

production Railway 배포가 애플리케이션 부팅 단계에서 실패하는 문제를 복구합니다.

로그를 확인해보니 빌드 자체는 성공했지만, 컨테이너가 올라오면서 Liquibase가 실행되는 시점에 db.changelog-master.yaml::13-room-game-cleanup::codex의 checksum 불일치로 검증에 실패하고 있었습니다. 이 때문에 healthcheck가 계속 service unavailable로 떨어졌고, 최종적으로 Railway deployment가 실패 처리되었습니다.

원인

  • 이미 production DB에 적용된 13번 changeSet의 원래 checksum은 9:ab793f9c89fa3ff8af0afacad5e1391f 입니다.
  • 이후 코드에서 같은 changeSet가 참조하는 SQL 파일 내용이 바뀌면서 현재 계산 checksum이 9:7b52d6e541238e023a5984676f98e06a 로 달라졌습니다.
  • Liquibase는 이미 적용된 changeSet의 checksum이 바뀌면 validation 단계에서 부팅을 중단합니다.

즉, 기능 로직 문제가 아니라 "이미 실행된 마이그레이션의 checksum이 바뀐 것"이 직접 원인이었습니다.

변경사항

  • 13-room-game-cleanup changeSet에 기존 production checksum을 validCheckSum으로 허용했습니다.
  • 신규 환경에서는 현재 changeSet 내용이 그대로 적용되고,
  • 이미 기존 checksum이 기록된 production 환경에서는 validation만 통과하도록 복구했습니다.

기대 효과

  • production DB가 더 이상 Liquibase checksum validation에서 막히지 않습니다.
  • 애플리케이션이 정상 부팅되고 Railway healthcheck가 통과할 수 있습니다.

검증

  • ./gradlew test
  • ./gradlew integrationTest
  • ./gradlew check
  • Railway deploy 로그로 실제 실패 원인이 checksum mismatch였음을 확인

@NaMinhyeok NaMinhyeok merged commit 93d9d67 into main Apr 21, 2026
3 checks passed
@NaMinhyeok NaMinhyeok deleted the codex/liquibase-checksum-hotfix branch April 21, 2026 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant