[python] SQLAlchemy-Utils를 사용하여 Enum 유형 다루기

SQLAlchemy-Utils는 SQLAlchemy ORM을 보완하여 다양한 유틸리티 기능을 제공합니다. 여기에서는 SQLAlchemy-Utils를 사용하여 Enum 유형을 다루는 방법에 대해 알아보겠습니다.

SQLAlchemy-Utils 설치

SQLAlchemy-Utils를 설치하려면 다음 명령을 사용합니다.

pip install sqlalchemy-utils

Enum 유형 정의

먼저, Enum 유형을 정의해야 합니다. 예를 들어, 다음과 같이 Status Enum을 정의할 수 있습니다.

from enum import Enum

class Status(Enum):
    active = "active"
    inactive = "inactive"
    pending = "pending"

Enum 유형 매핑

이제, SQLAlchemy 모델에서 Enum 유형을 사용할 수 있도록 매핑해야 합니다. 이를 위해 Enum 타입을 사용하여 SQLAlchemy-Utils 모듈을 임포트합니다.

from sqlalchemy_utils import ChoiceType
from sqlalchemy import Column, Integer
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class YourModel(Base):
    __tablename__ = 'your_table'
    id = Column(Integer, primary_key=True)
    status = Column(ChoiceType(Status, impl=String(50)))

위의 코드에서 status 필드는 Status Enum 유형에 매핑되었습니다.

코드 실행

이제 위의 코드를 실행하면 SQLAlchemy 모델에서 Enum 유형을 성공적으로 다룰 수 있습니다.

결론

SQLAlchemy-Utils를 사용하여 Enum 유형을 다루는 것은 간단하고 효율적인 방법입니다. 이를 통해 데이터 모델에서 Enum 유형을 쉽게 다룰 수 있고, 코드를 더욱 간결하게 유지할 수 있습니다.

References