mirror of
https://github.com/PaiGramTeam/sqlmodel.git
synced 2024-11-25 09:27:40 +00:00
✨ 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:
parent
db29f53295
commit
dc4dc42ec5
@ -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
|
||||
|
21
tests/test_missing_type.py
Normal file
21
tests/test_missing_type.py
Normal 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
|
Loading…
Reference in New Issue
Block a user