어제 오늘 내일

Liquibase checksum 오류가 발생하는 경우 (변경사항 없는 경우 포함) 본문

IT/SpringBoot

Liquibase checksum 오류가 발생하는 경우 (변경사항 없는 경우 포함)

hi.anna 2025. 5. 7. 08:20

다음과 같이 liquibase checksum 오류가 발생하는 경우 해결방법

liquibase.exception.CommandExecutionException: liquibase.exception.ValidationFailedException: Validation Failed:

1 changeset check sum
db/changelog/2024-01/schema-changes.xml::add-email-column::jdoe
     previously: 8:3a5d9e4b2b8f9a1f5b4a53e34f9d2c65
     now:        8:9c1e2a3b4f1d6c9f8e3b0d7e2f1c4a67

Reason: The changeset has been modified since it was executed

 

 

원인

오류는 다음 하나의 이유로 발생합니다:

  1. schema-changes.xml내용이 수정되었음 (공백, 주석, 순서 변경 포함).
  2. Liquibase 버전 변경 등으로 checksum 계산 방식이 달라짐.

 

해결방법

1. liquibase clearCheckSums 사용 (로컬/개발 환경)  

liquibase clearCheckSums

 

 

  • 체크섬을 모두 삭제합니다.
  • 이후 다시 Liquibase실행하면 체크섬을 기준으로 DATABASECHANGELOG업데이트됩니다.

 

Maven/Gradle실행

# Maven
./mvnw liquibase:clearCheckSums

# Gradle
./gradlew liquibaseClearChecksums

 

 

 

 2. Spring Boot 설정으로 자동 초기화 (개발 중 빠른 테스트용)

application.yml 또는 application.properties다음 옵션 추가

# yaml
spring.liquibase.clear-checksums: true

# properties
spring.liquibase.clear-checksums=true

 

주의: 매번 애플리케이션 실행 checksum초기화하므로, 운영환경에서는 사용하지 마세요.

 

 

 

반응형
Comments