return group
-class Build(sqlmodel.SQLModel, database.BackendMixin, database.SoftDeleteMixin):
+class Build(sqlmodel.SQLModel, database.BackendMixin, database.SoftDeleteMixin, table=True):
__tablename__ = "builds"
def __str__(self):
# Owner
- owner: "User" = sqlmodel.Relationship()
+ owner: "User" = sqlmodel.Relationship(
+ sa_relationship_kwargs={ "foreign_keys" : "[Build.owner_id]" },
+ )
# Is this a scratch build?
# Group
- group: "BuildGroup" = sqlmodel.Relationship(back_populates="builds")
+ group: "BuildGroup" = sqlmodel.Relationship(back_populates="builds",
+ sa_relationship_kwargs={ "foreign_keys" : "[Build.group_id]" },
+ )
# Severity
# Notify
await comment.notify()
- #comments = sqlalchemy.orm.relationship(
- # "BuildComment", back_populates="build", lazy="selectin",
- #)
+ # Comments
+
+ comments: "BuildComment" = sqlmodel.Relationship(back_populates="build")
# Deleted By ID
- #deleted_by_id = Column(Integer, ForeignKey("users.id"))
+ deleted_by_id: int = sqlmodel.Field(foreign_key="users.id", exclude=True)
# Deleted By
- #deleted_by = sqlalchemy.orm.relationship(
- # "User", foreign_keys=[deleted_by_id], lazy="selectin",
- #)
+ deleted_by: "User" = sqlmodel.Relationship(
+ sa_relationship_kwargs={ "foreign_keys" : "[Build.deleted_by_id]" },
+ )
# Add Points
# Points
- points : int = sqlmodel.Field(default=0)
+ points: int = sqlmodel.Field(default=0)
## Watchers
+ watchers: "BuildWatcher" = sqlmodel.Relationship()
+
async def get_watchers(self):
stmt = (
sqlalchemy
# Created By
- created_by: "User" = sqlmodel.Relationship()
+ created_by: "User" = sqlmodel.Relationship(
+ sa_relationship_kwargs={ "foreign_keys" : "[BuildGroup.created_by_id]" },
+ )
# Deleted By ID
- #deleted_by_id: int = sqlmodel.Field(foreign_key="users.id")
+ deleted_by_id: int = sqlmodel.Field(foreign_key="users.id")
# Deleted By
- #deleted_by: "User" = sqlmodel.Relationship()
+ deleted_by: "User" = sqlmodel.Relationship(
+ sa_relationship_kwargs={ "foreign_keys" : "[BuildGroup.created_by_id]" },
+ )
# Finished At
# Builds
- builds: "Build" = sqlmodel.Relationship(back_populates="group")
+ builds: "Build" = sqlmodel.Relationship(back_populates="group",
+ sa_relationship_kwargs={ "foreign_keys" : "[Build.group_id]" })
@staticmethod
def _sort_builds(build):
# Tested Build
- tested_build: "Build" = sqlmodel.Relationship()
+ tested_build: "Build" = sqlmodel.Relationship(
+ sa_relationship_kwargs={ "foreign_keys" : "[BuildGroup.tested_build_id]" },
+ )
# Test?
# Build
- build: "Build" = sqlmodel.Relationship(back_populates="comments")
+ build: "Build" = sqlmodel.Relationship()
# Created At
# Build
- build: "Build" = sqlmodel.Relationship(back_populates="comments")
+ build: "Build" = sqlmodel.Relationship(back_populates="watchers")
# User ID