카테고리 없음

FastAPI | Alembic를 이용한 DB 버전 관리

JOOHUUN 2023. 8. 30. 15:01

Alembic 란 ?

Database migration을 해주는 프로그램 입니다.

데이터베이스 테이블은 개발하면서 변경이 일어날 수 있는데, 이러한 데이터베이스의 version을 key로 구분하여 버전관리를 할 수 있도록 도움을 주는 프로그램입니다.

 

설치

pip install alembic

초기세팅

alembic init test_migration

위 명령어로 디비 버전 관리를 담당할 test_migration 폴더와  alembic.ini 파일이 생성되었습니다.

연동할 디비 설정

# alembic.ini

sqlalchemy.url = postgresql://user:password@host:port/dbname

 

관리할 테이블 설정

실습

마이그레이션을 진행하기 전 기본 모델(위사진)에 테스트 필드(아래사진)을 추가 하겠습니다.

변경 전
변경 후

# migration
alembic revision --autogenerate -m "add alembic_test col"

alembic_test 필드를 추가하고 마이그레이션 커밋 메세지와 함께 명령어를 날립니다. 마이그레이션 버전 파일은 "커밋메시지.py" 로 생성된것을 확인 할 수 있습니다.

생성된 마이그레이션 버전 파일 입니다.  upgrade 하면 alembic_test 필드가 추가된다는 내용이 보입니다.

upgrade 를 하지 않으면 실제 디비는 변경된 스키마가 반영되지 않습니다. 반영하기 위해서 추가적으로 아래 명령어를 날립니다.

# migrate
alembic upgrade head

migrate를 진행하면 정상적으로 alembic_test 필드가 추가됩니다.