Raise an exception when using a Pydantic field type with no matching SQLAlchemy type (#18)

Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
This commit is contained in:
Jakob Jul Elben 2022-08-27 22:13:32 +02:00 committed by GitHub
parent db29f53295
commit dc4dc42ec5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 0 deletions

View File

@ -415,6 +415,7 @@ def get_sqlachemy_type(field: ModelField) -> Any:
return AutoString
if issubclass(field.type_, uuid.UUID):
return GUID
raise ValueError(f"The field {field.name} has no matching SQLAlchemy type")
def get_column_from_field(field: ModelField) -> Column: # type: ignore

View File

@ -0,0 +1,21 @@
from typing import Optional
import pytest
from sqlmodel import Field, SQLModel
def test_missing_sql_type():
class CustomType:
@classmethod
def __get_validators__(cls):
yield cls.validate
@classmethod
def validate(cls, v):
return v
with pytest.raises(ValueError):
class Item(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
item: CustomType