Exemplo n.º 1
0
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()
Exemplo n.º 3
0
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."
Exemplo n.º 4
0
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
Exemplo n.º 5
0
def get_warehouses() -> Dict[str, Any]:
    """NOTE: this assumes Zillion Web DB is same as Zillion DB"""
    global warehouses
    if warehouses:
        # TODO: cache control?
        return warehouses

    print("Building warehouses...")
    db = SessionLocal()
    try:
        result = db.query(Warehouses).all()
        for row in result:
            warehouses[row.id] = Warehouse.load(row.id)
        pp(warehouses)
        return warehouses
    finally:
        db.close()
Exemplo n.º 6
0
def setup_function(function):
    db = SessionLocal()
    db.query(Post).delete()
    db.commit()
Exemplo n.º 7
0
def get_values():
    db = SessionLocal()
    values = db.query(m.RawVideoCaption).all()

    print(f"{len(values)} records inserted")