about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2025-03-25 13:20:57 -0500
committerFrederick Muriuki Muriithi2025-03-25 13:20:57 -0500
commit8bbbd120f6a1b7dd27e22a433b07326a41c32b04 (patch)
tree6fc0c810ed4a7d716f23f10f0069dace8228a7c2
parent8dc121fb4286f1bd90b51777d215253b2806ee43 (diff)
downloadgn-libs-8bbbd120f6a1b7dd27e22a433b07326a41c32b04.tar.gz
Change query for updating metadata: allow creating new item.
-rw-r--r--gn_libs/jobs/jobs.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/gn_libs/jobs/jobs.py b/gn_libs/jobs/jobs.py
index 4519e4f..38cd9c0 100644
--- a/gn_libs/jobs/jobs.py
+++ b/gn_libs/jobs/jobs.py
@@ -132,7 +132,10 @@ def update_metadata(conn: DbConnection, job_id: Union[str, uuid.UUID], key: str,
     """Update the value of a metadata item."""
     with _cursor(conn) as cursor:
         cursor.execute(
-            "UPDATE jobs_metadata SET metadata_value=:value "
+            "INSERT INTO jobs_metadata(job_id, metadata_key, metadata_value) "
+            "VALUES (:job_id, :key, :value) "
+            "ON CONFLICT (job_id, metadata_key) DO UPDATE "
+            "SET metadata_value=:value "
             "WHERE job_id=:job_id AND metadata_key=:key",
             {
                 "job_id": str(job_id),