[python] FastAPI에서 마이그레이션 처리하기

FastAPI는 Python 웹 프레임워크 중 하나로, 높은 성능과 직관적인 문서화 기능을 제공합니다. 이를 이용하면 빠르게 API를 구축할 수 있습니다. 이번 블로그에서는 FastAPI 애플리케이션에서 데이터베이스 마이그레이션을 처리하는 방법에 대해 알아보겠습니다.

마이그레이션이란?

마이그레이션이란 데이터베이스 스키마 변경이나 데이터 이전을 의미합니다. 새로운 필드를 추가하거나 기존 필드를 수정하는 등의 작업이 포함될 수 있습니다. 마이그레이션은 데이터베이스 구조를 변경하거나 이전 데이터를 새로운 구조에 맞게 변환할 때 사용됩니다.

FastAPI에서 마이그레이션 이용하기

FastAPI에서는 Alembic을 이용하여 데이터베이스 마이그레이션을 처리할 수 있습니다. Alembic은 SQLAlchemy와 호환되는 경량 마이그레이션 도구로, 데이터베이스 스키마를 버전별로 관리하고 스키마 수정을 추적할 수 있습니다.

아래는 FastAPI 애플리케이션에서 데이터베이스 마이그레이션을 처리하는 단계별 예시 코드입니다.

from alembic import command
from alembic.config import Config
from fastapi import FastAPI
from sqlalchemy import create_engine

app = FastAPI()

# 데이터베이스 연결 설정
SQLALCHEMY_DATABASE_URL = "postgresql://user:password@localhost/db_name"
engine = create_engine(SQLALCHEMY_DATABASE_URL, pool_pre_ping=True)

# Alembic 설정 파일을 이용하여 마이그레이션 처리
alembic_ini_path = "alembic.ini"
alembic_cfg = Config(alembic_ini_path)
alembic_cfg.set_main_option("sqlalchemy.url", str(SQLALCHEMY_DATABASE_URL))

@app.on_event("startup")
async def run_migrations():
    with engine.connect() as connection:
        command.upgrade(alembic_cfg, "head")

마무리

FastAPI를 이용하여 데이터베이스 마이그레이션을 처리하는 방법에 대해 알아보았습니다. 이를 통해 FastAPI 기반의 애플리케이션에서 데이터베이스의 스키마 변경이나 데이터 이전 작업을 간편하게 처리할 수 있습니다.

이상으로 FastAPI에서 마이그레이션 처리하는 방법에 대해 알아본 내용을 마칩니다.

[참고 자료]