🐛 Fix Enum handling in SQLAlchemy (#165)

Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
This commit is contained in:
Chris White
2022-08-27 15:48:44 -07:00
committed by GitHub
parent 2fab4817fe
commit eef0b7770b
2 changed files with 76 additions and 13 deletions

View File

@@ -31,18 +31,9 @@ from pydantic.fields import ModelField, Undefined, UndefinedType
from pydantic.main import ModelMetaclass, validate_model
from pydantic.typing import ForwardRef, NoArgAnyCallable, resolve_annotations
from pydantic.utils import ROOT_KEY, Representation
from sqlalchemy import (
Boolean,
Column,
Date,
DateTime,
Float,
ForeignKey,
Integer,
Interval,
Numeric,
inspect,
)
from sqlalchemy import Boolean, Column, Date, DateTime
from sqlalchemy import Enum as sa_Enum
from sqlalchemy import Float, ForeignKey, Integer, Interval, Numeric, inspect
from sqlalchemy.orm import RelationshipProperty, declared_attr, registry, relationship
from sqlalchemy.orm.attributes import set_attribute
from sqlalchemy.orm.decl_api import DeclarativeMeta
@@ -396,7 +387,7 @@ def get_sqlachemy_type(field: ModelField) -> Any:
if issubclass(field.type_, time):
return Time
if issubclass(field.type_, Enum):
return Enum
return sa_Enum(field.type_)
if issubclass(field.type_, bytes):
return LargeBinary
if issubclass(field.type_, Decimal):