From 426844f9280ba4e632cf0f2b2dba37086fcc71dc Mon Sep 17 00:00:00 2001 From: sanj <67624670+iodrift@users.noreply.github.com> Date: Mon, 12 Aug 2024 22:55:12 -0700 Subject: [PATCH] Auto-update: Mon Aug 12 22:55:12 PDT 2024 --- sijapi/database.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/sijapi/database.py b/sijapi/database.py index 0b1b67d..8e4b491 100644 --- a/sijapi/database.py +++ b/sijapi/database.py @@ -270,16 +270,26 @@ class Database: for query in unexecuted_queries: try: params = json.loads(query.args) - await session.execute(text(query.query), params) - query.completed_by = list(set(query.completed_by + [self.local_ts_id])) - await session.commit() + + # Convert string datetime to datetime objects + for key, value in params.items(): + if isinstance(value, str) and value.endswith(('Z', '+00:00')): + try: + params[key] = datetime.fromisoformat(value.rstrip('Z')) + except ValueError: + # If conversion fails, leave the original value + pass + + async with session.begin(): + await session.execute(text(query.query), params) + query.completed_by = list(set(query.completed_by + [self.local_ts_id])) + await session.commit() l.info(f"Successfully executed query ID {query.id}") except Exception as e: l.error(f"Failed to execute query ID {query.id}: {str(e)}") await session.rollback() l.info("Finished executing unexecuted queries") - async def call_db_sync_on_servers(self): """Call /db/sync on all online servers.""" online_servers = await self.get_online_servers()