Skip to content

Alembic

Database Migration Tool

파이썬의 대표적인 ORM인 SQLAlchemy를 사용할 때, 데이터베이스의 스키마(테이블 구조 등)를 변경하고 관리하기 위해 사용하는 라이브러리입니다. 데이터베이스의 버전 관리 시스템(Git과 유사한 역할)이라고 이해하면 쉽습니다.

Alembic을 사용하는 이유?

  • Alembic 사용법 (python data migrations) :: 까치의 일상노트
  • 보통 개발 할 때 여러 대의 DB를 생성하여 사용합니다.
  • 아래 Flow와 같이 Dev와 Prod DB를 일치 시켜야 운영이 가능 할 때 사람이 일일히 수동으로 하는 것이 아니라 Alembic으로 통합하여 다른 사람이라도 똑같은 컨디션의 환경을 제공해주기 위한 툴입니다.
  • spring 진영의 flyway와 비슷 합니다. 차이점이라면 flyway는 변경 정보를 각 테이블에 모두 기록하는 반면, alembic은 마지막에 마이그레이션 된 버전의 해시값만을 기록합니다.
  • alembic DB migrations을 버전의 해시값으로 버전별 어떤 작업을 했는지 트래킹이 용이합니다.
  • 보통 migration이 생기는 경우는 아래와 같은데 이 모두 10대의 DB 인스턴스가 있다면 10번을 반복해 줘야하지만 alembic을 사용하면 한번 수정과 배포가 진행 됩니다.
    • 클라우드 인스턴스 이동하여 DB를 새로 생성해야 할 때
    • 특정 Entity에 대한 변경 요청
    • Table Schema 변경 되는 경우

See also

Favorite site