Files
llm-wiki/raw/official-docs/migration-liquibase-official-changelog-xml-yaml.md

11 KiB

title, source_type, url, archive_url, status, confidence, tags, related_projects, related_branches, created, last_reviewed
title source_type url archive_url status confidence tags related_projects related_branches created last_reviewed
Liquibase — Changelog Formats (XML / YAML / JSON / SQL) and Rollback official-doc https://docs.liquibase.com/concepts/changelogs/home.html raw medium
ca-skeleton
migration
startup
liquibase
schema
official-doc
ca-skeleton-operational-contract
feature-migration-startup-contract
2026-05-22 2026-05-27

Liquibase — Changelog Formats (XML / YAML / JSON / SQL) and Rollback

Layer: raw/official-docs/ — Liquibase 공식 문서 발췌 (docs.liquibase.com + GitHub README). ca-tmpl Group G-D 대안 2. Flyway 와 비교 baseline 용.

2026-05-27 정독 시 docs.liquibase.com 의 모든 deep-link 가 HTTP 403 반환 (자동화 접근 차단). 본 문서의 "핵심 인용" 중 일부 (changelog 정의·DATABASECHANGELOG checksum 동작·rollback 자동 생성 동작) 는 이전 정독 시점의 인용을 보존하되, 직접 재확인이 불가능하여 confidence: medium + 해당 claim 의 strength 는 needs-confirmation 으로 표시한다. 직접 재확인 가능했던 GitHub liquibase/liquibase README 인용은 official-vendor-doc 으로 분리.

Parent / 활용 branch (필수)

Branch 이 자료가 정당화하는 결정
raw/branch-notes/feature-migration-startup-contract Liquibase = ca-tmpl Group G-D 대안 2 (채택 X, "조직 표준일 때만 허용"). DB-agnostic changelog + rollback 자동 생성의 장점과 XML/YAML verbose + rollback "guaranteed safe 아님" 단점을 baseline 으로 보존하여 Flyway 채택을 정당화

또한 다음 project hub 에서도 인용:

컨텍스트 / 왜 저장했는지

ca-tmpl feature-migration-startup-contract의 결정은 Flyway default + Liquibase는 조직 표준일 때만 허용. 본 source는 Liquibase의 strength (DB-agnostic changelog + rollback) 와 weakness (XML/YAML 복잡도)를 baseline으로 보존.

출처 / Source

핵심 인용 / Key quotes (verbatim)

A. 2026-05-27 직접 재확인 가능 (GitHub README)

[§GitHub liquibase/liquibase README — Overview] "Liquibase helps millions of developers track, version, and deploy database schema changes."

[§GitHub README — Capabilities (verbatim bullets)] "Control database schema changes for specific versions" / "Eliminate errors and delays when releasing databases" / "Automatically order scripts for deployment" / "Easily rollback changes" / "Collaborate with tools you already use"

[§GitHub README — Getting started examples] examples/sql 및 examples/xml 디렉터리 참조 — SQL / XML format 의 존재만 명시적으로 확인 가능 (YAML/JSON 의 README 내 직접 언급은 없음).

B. 이전 정독 시점 인용 (docs.liquibase.com, 2026-05-27 현재 자동화 재확인 불가 — needs-confirmation)

[§docs.liquibase.com / Concepts / Changelogs — needs-confirmation] "Liquibase uses a changelog to track, version, and deploy database changes. The changelog is a file that you create to list all the changes that need to run against the database. Changelogs can be written in SQL, XML, YAML, or JSON format."

[§docs.liquibase.com / Concepts / Changelogs — needs-confirmation] "Each changeSet contains one or more refactorings (changes) that should be applied to the database. A changeSet is uniquely identified by the combination of an id, author, and changelog file path/name. ... Once executed, the changeSet is recorded in the DATABASECHANGELOG table."

[§docs.liquibase.com / Using rollback — needs-confirmation] "Liquibase generates rollback statements automatically for some change types (e.g., createTable, addColumn). For other change types you must provide explicit <rollback> blocks. ... Rollback in production is not guaranteed to be safe — data loss may occur."

[§docs.liquibase.com / Concepts — needs-confirmation] "Liquibase changesets are checksum-validated against DATABASECHANGELOG.MD5SUM. Modifying an applied changeset changes the checksum and Liquibase will fail at startup unless runOnChange or validCheckSum is set."

Claims Extracted / 추출된 주장

Claim ID Claim (이 자료가 직접 말하는 것) Evidence quote Strength Applies to Does not prove
LIQUIBASE-C1 Liquibase 는 "track, version, and deploy database schema changes" 를 위한 공식 도구 (수백만 dev 가 사용) [§GitHub README] "Liquibase helps millions of developers track, version, and deploy database schema changes." official-vendor-doc Liquibase 일반 도입 결정 "Flyway 보다 좋다" 라는 비교 우위는 본 인용에 없음
LIQUIBASE-C2 Liquibase 공식 capability 에 "Easily rollback changes" 가 포함됨 (= rollback 이 first-class 기능) [§GitHub README — Capabilities] "Easily rollback changes" official-vendor-doc Liquibase rollback 기능의 공식 마케팅 포지션 "모든 change type 에 rollback 이 자동 생성됨" 또는 "rollback 이 prod 에서 항상 안전함" 은 본 인용으로 증명 안 됨 (B 섹션의 needs-confirmation claim 필요)
LIQUIBASE-C3 Liquibase 는 최소한 SQL 및 XML format 의 changelog 를 지원 (GitHub README 의 examples 디렉터리 명시) [§GitHub README] examples/sql 및 examples/xml 디렉터리 참조 official-vendor-doc SQL / XML changelog 작성 YAML / JSON format 지원은 본 README 인용으로는 직접 증명 안 됨 (실제로 공식 지원되나, 본 자료에서 직접 인용 확보 못함 → LIQUIBASE-C4 참조)
LIQUIBASE-C4 (이전 정독) changelog 는 SQL/XML/YAML/JSON 4가지 format 으로 작성 가능 [§docs.liquibase.com / Concepts] "Changelogs can be written in SQL, XML, YAML, or JSON format." needs-confirmation Liquibase 4.x changelog 작성 2026-05-27 자동화 재확인 불가 (403). 수동 브라우저 재확인 필요
LIQUIBASE-C5 (이전 정독) changeSet 은 id + author + 파일 경로/이름 의 조합으로 고유 식별되고 실행 후 DATABASECHANGELOG table 에 기록됨 [§docs.liquibase.com / Concepts] "A changeSet is uniquely identified by the combination of an id, author, and changelog file path/name. ... Once executed, the changeSet is recorded in the DATABASECHANGELOG table." needs-confirmation Liquibase changeSet 식별 메커니즘 2026-05-27 자동화 재확인 불가. column 정확한 이름은 공식 schema reference 별도 확인 필요
LIQUIBASE-C6 (이전 정독) rollback statement 는 일부 change type (createTable, addColumn 등) 에서 자동 생성되고 그 외는 명시적 <rollback> 블록 필요. prod rollback 은 "guaranteed safe 아님" — data loss 가능 [§docs.liquibase.com / Using rollback] "Liquibase generates rollback statements automatically for some change types ... Rollback in production is not guaranteed to be safe — data loss may occur." needs-confirmation rollback 운영 결정 2026-05-27 자동화 재확인 불가. 자동 생성되는 정확한 change type 전체 목록은 별도 reference
LIQUIBASE-C7 (이전 정독) 이미 applied 된 changeset 이 수정되면 DATABASECHANGELOG.MD5SUM checksum mismatch 로 startup 시 실패하며, runOnChange 또는 validCheckSum 설정으로만 우회 가능 [§docs.liquibase.com / Concepts] "Liquibase changesets are checksum-validated against DATABASECHANGELOG.MD5SUM ... Liquibase will fail at startup unless runOnChange or validCheckSum is set." needs-confirmation Liquibase startup validation 2026-05-27 자동화 재확인 불가. checksum 알고리즘 (MD5 외) 의 정확한 버전별 차이는 별도 확인 필요

Usage Boundaries / 적용 경계

  • 이 자료가 직접 증명하는 것 (높은 신뢰):
    • LIQUIBASE-C1: Liquibase 의 공식 포지션 (track/version/deploy schema changes)
    • LIQUIBASE-C2: rollback 이 공식 capability 로 마케팅됨
    • LIQUIBASE-C3: SQL + XML format 지원 (examples 디렉터리)
  • 이 자료가 직접 증명하지 않는 것 (자동화 재확인 불가, needs-confirmation):
    • LIQUIBASE-C4~C7: changelog 포맷 4종 전체, changeSet 식별 정확한 구성, rollback 자동 생성 change type, MD5SUM checksum 동작 — docs.liquibase.com 403 차단으로 자동 재확인 못함. 수동 브라우저로 재확인 후 strength 승급 필요
    • "Liquibase 가 Flyway 보다 enterprise-friendly 하다" 같은 비교 주장 (본 자료 범위 밖)
    • 한국/일본 기업의 Liquibase 운영 사례 (별도 case study 필요)
  • 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
    • docs.liquibase.com 의 자동화 접근 차단을 우회할 archive.org snapshot URL 확보 (현재 미수집)
    • rollback 자동 생성되는 change type 의 정확한 목록 (createTable, addColumn 외 어디까지인지)
    • Spring Boot 와의 통합 시 default 동작 (Liquibase Spring Boot starter)
    • DB-agnostic XML/YAML 의 실제 portability 한도 (vendor-specific 기능 사용 시)

메모 / Notes (내 프로젝트 해석)

본 섹션은 자료 직접 인용 아님. ca-tmpl 결정 컨텍스트 해석.

  • 적용 시나리오: 여러 DB(Oracle / PostgreSQL / MySQL 등)를 동시에 지원해야 하는 enterprise 환경, rollback이 명시적 요구사항인 환경.
  • 장점:
    • XML/YAML changelog는 DB-agnostic — 같은 changeset이 여러 DB에 deploy 가능 (databaseChangeLogdbms attribute).
    • 일부 change type에서 rollback 자동 생성.
    • changelog include / property substitution 등 modularization 기능이 풍부.
  • 단점:
    • XML/YAML이 SQL보다 verbose. dev 학습 비용 증가.
    • rollback이 "guaranteed safe"가 아님 — 데이터 손실 가능. forward-only migration이 더 안전하다는 ca-tmpl 결정과 충돌하지 않지만 매력 감소.
    • precondition / context 같은 고급 기능을 잘못 쓰면 silent skip이 발생.
  • ca-tmpl과의 차이: ca-tmpl은 Flyway default. Liquibase는 "조직 표준일 때만 허용"으로 둔다. rollback 지원이 장점이지만 ca-tmpl 결정은 no in-place rollback, forward-only migration + feature flag이므로 rollback 자동 생성 가치가 감소.