Пример SQLModel: пользовательский индекс по столбцу

В следующем примере мы создаём пользовательский индекс SQLModel по одному столбцу.

Вариант 1: Напрямую в поле

Это рекомендуется для индексов по одному столбцу из-за его простоты.

Просто добавьте параметр index=True к полю:

sqlmodel_custom_index.py
from sqlmodel import SQLModel, Field

class Offer(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    seller: str = Field(description="Name of the seller", index=True)

Вы можете выбрать параметр name для UniqueConstraint по своему усмотрению. Он используется для именования ограничения в базе данных.

Вариант 2: Использование __table_args__

Это рекомендуется для многоколоночных индексов (также называемых составными индексами).

sqlmodel_custom_index.py
from sqlmodel import Index, SQLModel, Field

class Offer(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    seller: str = Field(description="Name of the seller")
    url: str = Field(description="URL to the product page for this seller")

    __table_args__ = (
        Index('idx_seller', 'seller', 'url'),
    )

Check out similar posts by category: SQLModel Python Базы данных