Enums map to ClickHouse enums, storing categorical values efficiently.
from enum import Enum class UserRole(str, Enum): ADMIN = "admin" USER = "user" GUEST = "guest" class Status(str, Enum): PENDING = "pending" ACTIVE = "active" INACTIVE = "inactive" class User(BaseModel): role: UserRole status: Statusfrom enum import IntEnum class Priority(IntEnum): LOW = 1 MEDIUM = 2 HIGH = 3 CRITICAL = 4 class Task(BaseModel): priority: PriorityEnums are stored as integers internally, making them more storage-efficient than strings while maintaining readability in queries.
Adding new enum values is safe, but removing or renaming values requires careful migration planning as it affects existing data.