From: Michael Tremer Date: Mon, 30 Jun 2025 10:36:34 +0000 (+0000) Subject: keys: Migrate to SQLModel X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=041fcdfbb180ed6cdc1a2d680e99977fcaf07ca8;p=pbs.git keys: Migrate to SQLModel Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/keys.py b/src/buildservice/keys.py index 7d689694..e831ca7d 100644 --- a/src/buildservice/keys.py +++ b/src/buildservice/keys.py @@ -6,6 +6,7 @@ import io import logging import pakfire import sqlalchemy +import sqlmodel from sqlalchemy import Column, ForeignKey from sqlalchemy import DateTime, Integer, Numeric, Text @@ -46,53 +47,50 @@ class Keys(base.Object): return key -class Key(database.Base, database.BackendMixin, database.SoftDeleteMixin): +class Key(sqlmodel.SQLModel, database.BackendMixin, database.SoftDeleteMixin, table=True): __tablename__ = "keys" # ID - id = Column(Integer, primary_key=True) + id : int = sqlmodel.Field(primary_key=True, exclude=True) # Created At - created_at = Column(DateTime(timezone=False), nullable=False, - server_default=sqlalchemy.func.current_timestamp()) + created_at : datetime.datetime = sqlmodel.Field( + sa_column_kwargs = {"server_default" : sqlalchemy.text("CURRENT_TIMESTAMP")} + ) # Created By ID - created_by_id = Column(Integer, ForeignKey("users.id")) + created_by_id: int = sqlmodel.Field(foreign_key="users.id", exclude=True) # Created By - created_by = sqlalchemy.orm.relationship( - "User", foreign_keys=[created_by_id], lazy="selectin", - ) + created_by: "User" = sqlmodel.Relationship() # 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() # Public Key - public_key = Column(Text, nullable=False) + public_key: str # Secret Key - secret_key = Column(Text, nullable=False) + secret_key: str = sqlmodel.Field(exclude=True) # Key ID - key_id = Column(Numeric, nullable=False) + key_id: int = sqlmodel.Field(sa_column=sqlalchemy.Column(sqlalchemy.Numeric, nullable=False)) # Comment - comment = Column(Text) + comment: str def _make_key(self, pakfire): """