Skip to content
14 changes: 10 additions & 4 deletions sqlmodel/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,9 @@
from sqlalchemy.orm.attributes import set_attribute
from sqlalchemy.orm.decl_api import DeclarativeMeta
from sqlalchemy.orm.instrumentation import is_instrumented
from sqlalchemy.sql.schema import MetaData
from sqlalchemy.sql.schema import MetaData, SchemaEventTarget
from sqlalchemy.sql.sqltypes import LargeBinary, Time, Uuid
from sqlalchemy.types import TypeEngine
from typing_extensions import TypeAlias, deprecated, get_origin

from ._compat import ( # type: ignore[attr-defined]
Expand Down Expand Up @@ -87,6 +88,11 @@
Mapping[int, Union["IncEx", bool]],
Mapping[str, Union["IncEx", bool]],
]
SaTypeOrInstance: TypeAlias = Union[
TypeEngine[Any],
type[TypeEngine[Any]],
SchemaEventTarget,
]
OnDeleteType = Literal["CASCADE", "SET NULL", "RESTRICT"]


Expand Down Expand Up @@ -235,7 +241,7 @@ def Field(
unique: Union[bool, UndefinedType] = Undefined,
nullable: Union[bool, UndefinedType] = Undefined,
index: Union[bool, UndefinedType] = Undefined,
sa_type: Union[type[Any], UndefinedType] = Undefined,
sa_type: Union[SaTypeOrInstance, UndefinedType] = Undefined,
sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined,
sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined,
schema_extra: Optional[dict[str, Any]] = None,
Expand Down Expand Up @@ -279,7 +285,7 @@ def Field(
unique: Union[bool, UndefinedType] = Undefined,
nullable: Union[bool, UndefinedType] = Undefined,
index: Union[bool, UndefinedType] = Undefined,
sa_type: Union[type[Any], UndefinedType] = Undefined,
sa_type: Union[SaTypeOrInstance, UndefinedType] = Undefined,
sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined,
sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined,
schema_extra: Optional[dict[str, Any]] = None,
Expand Down Expand Up @@ -364,7 +370,7 @@ def Field(
unique: Union[bool, UndefinedType] = Undefined,
nullable: Union[bool, UndefinedType] = Undefined,
index: Union[bool, UndefinedType] = Undefined,
sa_type: Union[type[Any], UndefinedType] = Undefined,
sa_type: Union[SaTypeOrInstance, UndefinedType] = Undefined,
sa_column: Union[Column, UndefinedType] = Undefined, # type: ignore
sa_column_args: Union[Sequence[Any], UndefinedType] = Undefined,
sa_column_kwargs: Union[Mapping[str, Any], UndefinedType] = Undefined,
Expand Down