백엔드 Back-end/패스트API FastAPI

Q. FastAPI에서 MySQL unsigned integer 길이 11로 하는 방법은?

Tap to restart 2022. 2. 24. 15:00
반응형

A. Column(INTEGER(display_width=11, unsigned=True), primary_key=True, index=True)로 설정하면 된다.

 

위처럼 설정하기 위해서는 INTEGER를 불러와야 한다.

아래 코드가 그 예이다.

from sqlalchemy.dialects.mysql import INTEGER

class User(Base):
    __tablename__ = "users"

    id = Column(INTEGER(display_width=11, unsigned=True), primary_key=True, index=True)
    email = Column(String(255), unique=True, index=True)
    hashed_password = Column(String(255))
    is_active = Column(Boolean, default=True)

    items = relationship("Item", back_populates="owner")

 

위와 같이 모델을 설정해야 아래처럼 unsigned length 11로 된다. 기본은 signed다.

mysql length 11, unsigned로 설정된 예

 

전체 예제 프로젝트 코드는 FastAPI - ORM with MySQL 에서 확인할 수 있다.

 

사실 FastAPI는 sqlalchemy를 사용하고 있어서 위 설정에 관한 정보는 sqlalchemy 문서를 보면 확인할 수 있다.

 

반응형