더북(TheBook)

created_at과 updated_at을 ORM 차원에서 처리하기

앞서 살펴본 created_atupdated_at을 ORM 차원에서 처리하도록 하겠습니다.

파이썬(/appserver/apps/account/models.py)

from datetime import datetime, timezone
from sqlmodel import SQLModel, Field, Relationship, func
from pydantic import EmailStr
from sqlalchemy import UniqueConstraint

class User(SQLModel, table=True):
    __tablename__ = "users"

    # 생략

    # created_at과 updated_at 코드 수정
    created_at: datetime = Field(
        default=None,
        nullable=False,
        sa_column_kwargs={  # ①
            "server_default": func.now(),
        },
    )
    updated_at: datetime = Field(
        default=None,
        nullable=False,
        sa_column_kwargs={
            "server_default": func.now(),
            "onupdate": datetime.now,
        },
    )
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.