FastAPI에서 데이터베이스 마이그레이션 자동화하기

FastAPI는 Python 기반의 빠르고 현대적인 웹 프레임워크입니다. 데이터베이스 마이그레이션은 애플리케이션 개발 단계에서 필수적입니다. 이 블로그 포스트에서는 FastAPI에서 데이터베이스 마이그레이션을 자동화하는 방법에 대해 알아보겠습니다.

데이터베이스 마이그레이션 라이브러리 선택

FastAPI 애플리케이션에서 데이터베이스 마이그레이션을 자동화하기 위해서는 적절한 마이그레이션 라이브러리를 선택해야 합니다. 대표적인 선택지로는 Alembic이 있습니다. Alembic은 SQLAlchemy ORM과 통합되어 데이터베이스 스키마 변경을 추적하고 관리할 수 있게 해줍니다.

Alembic 설치하기

Alembic을 설치하려면 다음 명령을 실행합니다:

pip install alembic

Alembic 설정 파일 생성하기

먼저 프로젝트 루트 디렉토리에 alembic.ini 설정 파일을 생성해야 합니다. 이 파일은 Alembic 설정을 담당하며, 데이터베이스 연결 정보, 마이그레이션 스크립트의 위치 등을 설정할 수 있습니다.

마이그레이션 스크립트 생성하기

Alembic은 alembic init 명령을 통해 마이그레이션 스크립트의 기반 구조를 생성할 수 있습니다. 다음 명령을 실행하여 스크립트 디렉토리를 생성합니다:

alembic init alembic

위 명령을 실행하면 alembic 디렉토리가 생성되며, 스크립트를 작성할 수 있는 versions 디렉토리가 포함됩니다.

모델과 스키마 정의하기

FastAPI에서 데이터베이스 모델과 스키마를 정의할 때는 SQLAlchemy ORM을 사용합니다. 모델 클래스들을 models.py 파일에 작성합니다.

초기 마이그레이션 생성하기

데이터베이스에 첫 번째 마이그레이션 스크립트를 생성하기 위해 다음 명령을 실행합니다:

alembic revision --autogenerate -m "initial migration"

위 명령을 실행하면 현재 데이터베이스 상태와 모델을 비교하여 마이그레이션 스크립트가 자동으로 생성됩니다.

마이그레이션 적용하기

마이그레이션 스크립트를 데이터베이스에 적용하려면 다음 명령을 실행합니다:

alembic upgrade head

위 명령은 마이그레이션 스크립트를 순차적으로 실행하여 데이터베이스를 최신 상태로 업데이트합니다.

결론

이제 FastAPI에서 데이터베이스 마이그레이션을 자동화하는 방법에 대해 알아보았습니다. Alembic을 사용하여 마이그레이션 스크립트를 생성하고 적용함으로써 데이터베이스 스키마 변경을 관리할 수 있습니다. 프로젝트의 유지보수와 협업에 있어서 데이터베이스 마이그레이션은 중요한 요소이므로, 적절히 사용하는 것이 좋습니다.

#FastAPI #데이터베이스마이그레이션