X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=plomtask%2Fdb.py;h=deeb748de0b427b1ff2f999e58713d3cee4e7807;hb=ee18435127ad396c24dbee2c7efcdbe6810d5a91;hp=ebd8c6c544fd9dd3aca7e040bccb3d354629806d;hpb=8570f4ce4d44b813a1f02b72c5c45a57d2003bae;p=plomtask
diff --git a/plomtask/db.py b/plomtask/db.py
index ebd8c6c..deeb748 100644
--- a/plomtask/db.py
+++ b/plomtask/db.py
@@ -102,7 +102,8 @@ class DatabaseConnection:
return [row[0] for row in
self.exec(f'SELECT {column} FROM {table_name}')]
- def delete_where(self, table_name: str, key: str, target: int) -> None:
+ def delete_where(self, table_name: str, key: str,
+ target: int | str) -> None:
"""Delete from table where key == target."""
self.exec(f'DELETE FROM {table_name} WHERE {key} = ?', (target,))
@@ -234,3 +235,9 @@ class BaseModel(Generic[BaseModelId]):
if update_with_lastrowid:
self.id_ = cursor.lastrowid # type: ignore[assignment]
self.cache()
+
+ def remove(self, db_conn: DatabaseConnection) -> None:
+ """Remove from DB."""
+ assert isinstance(self.id_, int | str)
+ self.uncache()
+ db_conn.delete_where(self.table_name, 'id', self.id_)