in hugegraph-llm/src/hugegraph_llm/utils/hugegraph_utils.py [0:0]
def backup_data():
try:
client = get_hg_client()
create_dir_safely(BACKUP_DIR)
date_str = datetime.now().strftime("%Y%m%d")
backup_subdir = os.path.join(BACKUP_DIR, f"{date_str}")
create_dir_safely(backup_subdir)
files = {
"vertices.json": f"g.V().limit({MAX_VERTICES})"
f".aggregate('vertices').count().as('count').select('count','vertices')",
"edges.json": f"g.E().limit({MAX_EDGES}).aggregate('edges').count().as('count').select('count','edges')",
"schema.json": client.schema().getSchema(_format="groovy")
}
vertexlabels = client.schema().getSchema()["vertexlabels"]
all_pk_flag = all(data.get('id_strategy') == 'PRIMARY_KEY' for data in vertexlabels)
for filename, query in files.items():
write_backup_file(client, backup_subdir, filename, query, all_pk_flag)
log.info("Backup successfully in %s.", backup_subdir)
relative_backup_subdir = os.path.relpath(backup_subdir, start=resource_path)
del_info = manage_backup_retention()
return f"Backup successfully in '{relative_backup_subdir}' \n{del_info}"
except Exception as e: # pylint: disable=W0718
log.critical("Backup failed: %s", e, exc_info=True)
raise Exception("Failed to execute backup") from e