mirror of
https://git.mirrors.martin98.com/https://github.com/infiniflow/ragflow.git
synced 2025-08-15 12:25:57 +08:00
Fix: bugs mentioned by#5760 (#5778)
### What problem does this PR solve? Fixed the issue of "stop deleting when encountering invalid dataset ID" #5760 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) --------- Co-authored-by: Kevin Hu <kevinhu.sh@gmail.com>
This commit is contained in:
parent
8a84d1048c
commit
50c510d16b
@ -228,6 +228,8 @@ def delete(tenant_id):
|
|||||||
schema:
|
schema:
|
||||||
type: object
|
type: object
|
||||||
"""
|
"""
|
||||||
|
errors = []
|
||||||
|
success_count = 0
|
||||||
req = request.json
|
req = request.json
|
||||||
if not req:
|
if not req:
|
||||||
ids = None
|
ids = None
|
||||||
@ -243,12 +245,12 @@ def delete(tenant_id):
|
|||||||
for id in id_list:
|
for id in id_list:
|
||||||
kbs = KnowledgebaseService.query(id=id, tenant_id=tenant_id)
|
kbs = KnowledgebaseService.query(id=id, tenant_id=tenant_id)
|
||||||
if not kbs:
|
if not kbs:
|
||||||
return get_error_data_result(message=f"You don't own the dataset {id}")
|
errors.append(f"You don't own the dataset {id}")
|
||||||
|
continue
|
||||||
for doc in DocumentService.query(kb_id=id):
|
for doc in DocumentService.query(kb_id=id):
|
||||||
if not DocumentService.remove_document(doc, tenant_id):
|
if not DocumentService.remove_document(doc, tenant_id):
|
||||||
return get_error_data_result(
|
errors.append(f"Remove document error for dataset {id}")
|
||||||
message="Remove document error.(Database error)"
|
continue
|
||||||
)
|
|
||||||
f2d = File2DocumentService.get_by_document_id(doc.id)
|
f2d = File2DocumentService.get_by_document_id(doc.id)
|
||||||
FileService.filter_delete(
|
FileService.filter_delete(
|
||||||
[
|
[
|
||||||
@ -260,7 +262,17 @@ def delete(tenant_id):
|
|||||||
FileService.filter_delete(
|
FileService.filter_delete(
|
||||||
[File.source_type == FileSource.KNOWLEDGEBASE, File.type == "folder", File.name == kbs[0].name])
|
[File.source_type == FileSource.KNOWLEDGEBASE, File.type == "folder", File.name == kbs[0].name])
|
||||||
if not KnowledgebaseService.delete_by_id(id):
|
if not KnowledgebaseService.delete_by_id(id):
|
||||||
return get_error_data_result(message="Delete dataset error.(Database error)")
|
errors.append(f"Delete dataset error for {id}")
|
||||||
|
continue
|
||||||
|
success_count += 1
|
||||||
|
if errors:
|
||||||
|
if success_count > 0:
|
||||||
|
return get_result(
|
||||||
|
data={"success_count": success_count, "errors": errors},
|
||||||
|
message=f"Partially deleted {success_count} datasets with {len(errors)} errors"
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
return get_error_data_result(message="; ".join(errors))
|
||||||
return get_result(code=settings.RetCode.SUCCESS)
|
return get_result(code=settings.RetCode.SUCCESS)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user