def clear_db(): db = SessionLocal() models = [ cls for name, cls in base.__dict__.items() if isinstance(cls, type) and name != "Base" ] model_table_names = [m.__tablename__ for m in models] model_table_names.append("alembic_version") # Drop records from the static tables for model in models: try: if model.__tablename__ == "user": # leave the superuser db.query(model).filter(model.id > 1).delete() else: db.query(model).delete() # print(f'Deleted {n} {model.__name__}s') db.commit() except Exception as e: print(f"Failed to delete {model}s") print(e) db.rollback() # Drop the dynamically created interface tables metadata = MetaData() metadata.bind = engine metadata.reflect(bind=engine) all_tables = metadata.tables for name, table in all_tables.items(): if name not in model_table_names: table.drop()
def delete_donations(ctx): from app.db.session import SessionLocal from app.models.donation import Donator, Donation db = SessionLocal() db.query(Donation).delete() db.query(Donator).delete() db.commit()
def clean_queue(msg: str) -> str: db = SessionLocal() print("In clear_queue()") counter = 0 timeout = datetime.datetime.utcnow() - datetime.timedelta(minutes=15) old_queue = db.query(Queue).filter(Queue.pending == True).\ filter(Queue.arrival_time <= timeout).filter(Queue.in_progress == False) for row in old_queue: print(f"Timing out queue entry {row.uuid}") stat_queue = Statistics(uuid=row.uuid, arrival_time=row.arrival_time, dequeued_at=row.dequeued_at, deleted_at=datetime.datetime.utcnow(), purged=True) db.add(stat_queue) counter += 1 db.delete(row) timeout = datetime.datetime.utcnow() - datetime.timedelta(minutes=60 * 24) very_old_queue = db.query(Queue).filter(Queue.arrival_time <= timeout) for row in very_old_queue: print(f"Timing out queue entry {row.uuid}") stat_queue = Statistics(uuid=row.uuid, arrival_time=row.arrival_time, dequeued_at=row.dequeued_at, deleted_at=datetime.datetime.utcnow(), purged=True) db.add(stat_queue) counter += 1 db.delete(row) db.commit() return f"Queue cleaned, {counter} entries removed."
def get_db() -> Generator: try: db = SessionLocal() yield db finally: try: db.commit() except exc.SQLAlchemyError: db.rollback() backend_logger.error("ERROR DB COMMIT", exc_info=True) db.close()
def get_db() -> Generator: try: db = SessionLocal() yield db except Exception as e: print(str(e)) traceback.print_exc() db.rollback() finally: db.commit() db.close()
def forward_rule_status_handler(port_id: int, status_data: dict, update_status: bool): if not update_status: return status_data db = SessionLocal() rule = (db.query(PortForwardRule).filter( PortForwardRule.port_id == port_id).first()) if rule: if (status_data.get("status", None) == "starting" and rule.status == "running"): return status_data rule.status = status_data.get("status", None) db.add(rule) db.commit() return status_data
def setup_function(function): db = SessionLocal() db.query(Post).delete() db.commit()