From 4bb257761b79426cbf0a1c23e09e2fc75b72a57b Mon Sep 17 00:00:00 2001 From: David Caro Date: Wed, 31 Aug 2022 10:31:27 +0200 Subject: [PATCH] Add support for sqlalchemy >=1.4 Main changes there are that subqueries have to be cast to select, and delete needs a table, not a column. --- src/backy2/meta_backends/sql.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/backy2/meta_backends/sql.py b/src/backy2/meta_backends/sql.py index 6d7097a..fe91582 100644 --- a/src/backy2/meta_backends/sql.py +++ b/src/backy2/meta_backends/sql.py @@ -555,7 +555,13 @@ def rm_version(self, version_uid): def cleanup_delete_candidates(self, dt=3600): # Delete false positives: logger.info("Deleting false positives...") - self.session.query(DeletedBlock.uid).filter(DeletedBlock.uid.in_(self.session.query(Block.uid).distinct(Block.uid).filter(Block.uid.isnot(None)).subquery())).filter(DeletedBlock.time < (inttime() - dt)).delete(synchronize_session=False) + self.session.query( + DeletedBlock + ).filter( + DeletedBlock.uid.in_( + self.session.query(Block.uid).distinct(Block.uid).filter(Block.uid.isnot(None)).subquery().select() + ) + ).filter(DeletedBlock.time < (inttime() - dt)).delete(synchronize_session=False) logger.info("Deleting false positives: done. Now deleting blocks.") self.session.commit()