카테고리 없음
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 필드가 추가됩니다.
