コード例 #1
0
ファイル: conftest.py プロジェクト: ericwburden/hearthlight
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()
コード例 #2
0
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()
コード例 #3
0
ファイル: worker.py プロジェクト: FuelRats/QMS
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."
コード例 #4
0
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()
コード例 #5
0
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()
コード例 #6
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
コード例 #7
0
ファイル: test_posts.py プロジェクト: nmarusov/AppFollow
def setup_function(function):
    db = SessionLocal()
    db.query(Post).delete()
    db.commit()