-
First Check
Commit to Help
Example Codefrom typing import Optional
from uuid import UUID
from pydantic import AnyHttpUrl, EmailStr
from pydantic.color import Color
from sqlalchemy import Column, Enum
from sqlmodel import SQLModel, Field, AutoString
from app.schemas.base_model import BaseSchema
from app.schemas.enums import UserType, UserGender, UserScrapeFrom
class UserBase(SQLModel):
type: UserType
en_name: Optional[str] = Field(index=True)
ar_name: Optional[str] = Field(index=True)
email: Optional[EmailStr] = Field(default=None)
uot_url: Optional[AnyHttpUrl] = Field(default=None)
image: Optional[AnyHttpUrl] = Field(default=None)
color: Color = Field(sa_column=Column(AutoString()))
asc_job_title: str = Field()
asc_name: str = Field()
scrape_from: Optional[UserScrapeFrom] = Field(default=None)
gender: UserGender = Field(sa_column=Column(Enum(UserGender)))
# relations
role_id: Optional[UUID] = Field(foreign_key="role.id") DescriptionCreate a type that does not belong to sqlalchemy alembic migration line Operating SystemWindows Operating System DetailsNo response SQLModel Version0.0.6 Python VersionPython 3.9.7 Additional ContextNo response |
Beta Was this translation helpful? Give feedback.
Replies: 7 comments 1 reply
-
I cannot reproduce your issue. What's the exact error and what database are you using? |
Beta Was this translation helpful? Give feedback.
-
I'm using PostgreSQL and I can't save types like pedantic color in DB |
Beta Was this translation helpful? Give feedback.
-
Weird, I had no difficulties using PostgreSQL. |
Beta Was this translation helpful? Give feedback.
-
Ah, I thought you had an error while migrating, but saving is your problem? |
Beta Was this translation helpful? Give feedback.
-
You could use a validator
if you don't mind that your color attribute will become a string after validation. Or you could write a custom
|
Beta Was this translation helpful? Give feedback.
-
Hi @masreplay I guess you are looking for Here's my code: # Pay attention in importing enum
from enum import Enum
from sqlalchemy import Enum as sqlAlchemyEnum
class EnumAccessStatus(Enum):
PENDING = "pending"
APPROVED = "approved"
REJECTED = "rejected"
REVOKED = "revoked"
access_status_values: Callable[[Type[EnumAccessStatus]], list[str]] = lambda status: [
s.value for s in status
]
class GithubAccessBase(SQLModel):
access_status: EnumAccessStatus = Field(
sa_column=Column(
sqlAlchemyEnum(EnumAccessStatus, values_callable=access_status_values)
)
) |
Beta Was this translation helpful? Give feedback.
-
Enum already supported I'm talking about other types like pydantic Color @jd-0001 |
Beta Was this translation helpful? Give feedback.
You could use a validator
if you don't mind that your color attribute will become a string after validation. Or you could write a custom
ColorType
: