feat: add 'missing' column to multiple tables and update related handlers for missing entries

This commit is contained in:
zurdi
2025-06-12 12:20:56 +00:00
parent 6a77f3a100
commit 8b0a06c3e6
7 changed files with 73 additions and 28 deletions

View File

@@ -65,10 +65,10 @@ class DBFirmwareHandler(DBBaseHandler):
)
@begin_session
def purge_firmware(
def mark_missing_firmware(
self, platform_id: int, fs_firmwares_to_keep: list[str], session: Session = None
) -> Sequence[Firmware]:
purged_firmware = (
missing_firmware = (
session.scalars(
select(Firmware)
.order_by(Firmware.file_name.asc())
@@ -83,13 +83,14 @@ class DBFirmwareHandler(DBBaseHandler):
.all()
)
session.execute(
delete(Firmware)
update(Firmware)
.where(
and_(
Firmware.platform_id == platform_id,
Firmware.file_name.not_in(fs_firmwares_to_keep),
)
)
.values(**{"missing": True})
.execution_options(synchronize_session="evaluate")
)
return purged_firmware
return missing_firmware