You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm @tiangolo or he asked me directly to create an issue here.
Issue Content
I'm encountering an issue where default values for fields in my SQLModel class are not being applied when using PostgreSQL. Despite specifying default or default_factory for various fields, the database does not seem to handle these defaults, and errors occur during table creation or insertion.
from datetime import datetime
from sqlmodel import Field, SQLModel
from typing import Optional
default and default_factory arguments are only Python-level defaults. They'll assign a default value to your field only during the creation of instances in Python.
If you go directly to the Postgres DB and try to add a row there, these defaults won't be considered.
In order to enforce the default in DB level, you can use sa_column_kwargs={"server_default": "<value>"} argument.
I hope this will solve your issue.
Privileged issue
Issue Content
I'm encountering an issue where default values for fields in my SQLModel class are not being applied when using PostgreSQL. Despite specifying default or default_factory for various fields, the database does not seem to handle these defaults, and errors occur during table creation or insertion.
from datetime import datetime
from sqlmodel import Field, SQLModel
from typing import Optional
class Posts(SQLModel, table=True):
id: Optional[int] = Field(default_factory=int, primary_key=True)
title: str
content: str
published: Optional[bool] = Field(default_factory=lambda: True)
created_at: Optional[datetime] = Field(default_factory=datetime.now)
The text was updated successfully, but these errors were encountered: