Exemplo n.º 1
0
    def bulk_delete_insert(self, delete_query: Query, rows: Iterable[dict], auto_commit=True) -> Tuple[int, int]:
        # TODO: トランザクション操作はおこないわないようにする
        model = self.model

        try:
            deleted = delete_query.delete()
            inserted = 0

            for row in rows:
                obj = model(**row)
                self.db.add(obj)
                inserted += 1

            if auto_commit:
                self.db.commit()

        except Exception as e:
            self.db.rollback()
            raise

        return deleted, inserted