데이터베이스 모델을 생성할 것이다.
TODO 테이블에서 필요한 속성은 id(기본키), title, description, priority, complete 의 속성이 있다.
따라서 우선 models.py 를 생성하고 모델 클래스를 정의할 것이다.
지난 시간에 만든 database 파일에서 Base 클래스를 임포트해온다.
Base 클래스는 데이터베이스 오브젝트를 만들기 위한 클래스이다.
models.py 에 다음처럼 작성한다.
테이블의 칼럼을 지정하는 것이다. id 는 기본키로 primary_key 를 True 로 지정한다.
from database import Base
from sqlalchemy import Column, Integer, String, Boolean
class Todos(Base):
__tablename__ = 'todos'
id = Column(Integer, primary_key=True, index=True)
titile = Column(String)
description = Column(String)
priority = Column(Integer)
complete = Column(Boolean, default=False)
모델은 이렇게 생성했고, 이제 데이터베이스를 만들것이다.
우리는 데이터베이스 위치도 지정했고, 테이블이 될 모델도 지정한 상태이다.
이제 db를 생성해볼것이다.
main.py 에서 fastapi 애플리케이션을 열어서, engine 을 바인딩해서 모델의 베이스의 메타데이터(데이터를위한 데이터)를 생성하는 것이다.
아래 코드를 작성 후 uvicorn 으로 app 을 실행하면, 폴더 구조에 db 파일이 생성된 것을 확인할 수 있다.
from fastapi import FastAPI
import models
from database import engine
app = FastAPI()
models.Base.metadata.create_all(bind=engine)
