initial alembic revision
followed article here for guidance: https://arunanshub.hashnode.dev/using-sqlmodel-with-alembic#heading-sql-constraint-naming-convention mirrored on my readeck: https://readeck.yuno.jack-case.pro/bookmarks/9ay79PHux348cgQBnA86UC
This commit is contained in:
25
slopserver/models.py
Normal file
25
slopserver/models.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from sqlmodel import Field, SQLModel, create_engine, Relationship
|
||||
|
||||
NAMING_CONVENTION = {
|
||||
"ix": "ix_%(column_0_label)s",
|
||||
"uq": "uq_%(table_name)s_%(column_0_name)s",
|
||||
"ck": "ck_%(table_name)s_%(constraint_name)s",
|
||||
"fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
|
||||
"pk": "pk_%(table_name)s",
|
||||
}
|
||||
|
||||
metadata = SQLModel.metadata
|
||||
metadata.naming_convention = NAMING_CONVENTION
|
||||
|
||||
class Domain(SQLModel, table=True):
|
||||
id: int | None = Field(default=None, primary_key=True)
|
||||
domain_name: str = Field(index=True, unique=True)
|
||||
|
||||
paths: list["Path"] = Relationship(back_populates="domain")
|
||||
|
||||
class Path(SQLModel, table=True):
|
||||
id: int | None = Field(default=None, primary_key=True)
|
||||
path: str
|
||||
|
||||
domain_id: int = Field(foreign_key="domain.id")
|
||||
domain: Domain = Relationship(back_populates="paths")
|
||||
Reference in New Issue
Block a user