Skip to content
Tools/DB 마이그레이션 탐색기

DB 마이그레이션 탐색기

DB Migration Explorer

Flyway와 Alembic이 스키마 마이그레이션을 어떻게 적용·추적·롤백하는지 인터랙티브하게 익혀보세요. 같은 5개의 마이그레이션을 두 방식으로 단계별 적용/롤백하며, 버전 SQL 파일 vs Python 리비전, flyway_schema_history vs alembic_version, 그리고 체크섬 드리프트 함정까지 확인합니다.

스키마 마이그레이션 도구가 어떻게 동작하는지 눈으로 익혀보세요. 같은 5개의 마이그레이션을 Flyway와 Alembic 두 방식으로 적용/롤백하면서, 스키마·이력 테이블·체크섬이 어떻게 변하는지 확인할 수 있습니다. 모든 것은 브라우저에서 시뮬레이션되며 실제 DB나 SQL 실행은 없습니다.

적용 / 롤백적용 상태: 0 5

아직 적용된 마이그레이션이 없습니다 (빈 데이터베이스).

마이그레이션 타임라인

노드를 클릭하면 해당 마이그레이션의 코드를 미리 볼 수 있습니다.
V1__create_users.sql대기 중
CREATE TABLE users (
    id   BIGSERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL
);

마이그레이션 파일

🗄️ 현재 스키마

테이블이 없습니다. 마이그레이션을 적용해 보세요.

flyway_schema_history 테이블
rankversiondescriptiontypechecksumsuccess
(행 없음)

Flyway는 적용한 마이그레이션마다 한 행씩 append합니다. 버전 번호 순으로 정렬된 선형 이력이며, 각 행에 체크섬을 기록합니다.

체크섬 드리프트 데모 (Flyway의 대표적 함정)

이미 적용된 마이그레이션 파일을 나중에 "고치면" 어떻게 될까요? Flyway는 파일의 현재 체크섬과 이력에 기록된 체크섬을 비교하기 때문에, 적용된 파일을 수정하면 validate가 실패합니다.

이 데모를 보려면 최소한 V2까지 적용해 주세요.

Flyway vs Alembic 핵심 차이

항목🐦 Flyway⚗️ Alembic
버전 관리파일 이름의 V1, V2, V3… 접두사 (선형)각 파일이 down_revision으로 부모를 가리키는 그래프
이력 테이블flyway_schema_history — 적용마다 한 행alembic_version — 현재 리비전 한 행뿐
작성 언어순수 SQL 파일 (Java 마이그레이션도 가능)Python — upgrade() / downgrade() 함수
롤백기본은 전진 전용 (Undo는 유료 Teams) — 보정 마이그레이션 작성downgrade()가 기본 내장 — alembic downgrade -1
체크섬 검증있음 — 적용된 파일을 수정하면 validate 실패없음 — 적용된 리비전 수정도 감지 못함
순서 결정버전 번호로 정렬down_revision 링크를 따라가며 결정

모든 마이그레이션은 구조화된 데이터로 표현되며, 브라우저에서 시뮬레이션됩니다.