from loguru import logger from db import dbGetMany, dbGetOne def perform(dbh, params): accountEntries = dbGetMany( dbh, { "statement": """ select id, due_at from account_entry_t where due_at is not null """, "params": {} } ) for accountEntry in accountEntries: id = accountEntry['id'] oldDueAt = accountEntry['due_at'] newDueAt = oldDueAt.replace(day=1) logger.info(f"id: {id}, due_at: {oldDueAt} -> {newDueAt}") fixedEntry = dbGetOne( dbh, { "statement": """ UPDATE account_entry_t SET due_at = %(dueAt)s WHERE id = %(id)s RETURNING * """, "params": { "id": id, "dueAt": newDueAt } } ) logger.info("fixed")