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다.
전체 예제 프로젝트 코드는 FastAPI - ORM with MySQL 에서 확인할 수 있다.
사실 FastAPI는 sqlalchemy를 사용하고 있어서 위 설정에 관한 정보는 sqlalchemy 문서를 보면 확인할 수 있다.