diff --git a/sqlmodel/main.py b/sqlmodel/main.py index d8fced51fa..8d4ae29098 100644 --- a/sqlmodel/main.py +++ b/sqlmodel/main.py @@ -51,7 +51,7 @@ from sqlalchemy.orm.decl_api import DeclarativeMeta from sqlalchemy.orm.instrumentation import is_instrumented from sqlalchemy.sql.schema import MetaData -from sqlalchemy.sql.sqltypes import LargeBinary, Time, Uuid +from sqlalchemy.sql.sqltypes import JSON, LargeBinary, Time, Uuid from typing_extensions import Literal, deprecated, get_origin from ._compat import ( # type: ignore[attr-defined] @@ -694,6 +694,9 @@ def get_sqlalchemy_type(field: Any) -> Any: ) if issubclass(type_, uuid.UUID): return Uuid + if issubclass(type_, JSON): + return JSON + raise ValueError(f"{type_} has no matching SQLAlchemy type")