mirror of
https://github.com/langgenius/dify.git
synced 2026-05-06 02:18:08 +08:00
fix: delete knowledge pipeline but pipeline and workflow don't delete (#29591)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
@ -15,4 +15,5 @@ def handle(sender: Dataset, **kwargs):
|
|||||||
dataset.index_struct,
|
dataset.index_struct,
|
||||||
dataset.collection_binding_id,
|
dataset.collection_binding_id,
|
||||||
dataset.doc_form,
|
dataset.doc_form,
|
||||||
|
dataset.pipeline_id,
|
||||||
)
|
)
|
||||||
|
|||||||
@ -9,6 +9,7 @@ from core.rag.index_processor.index_processor_factory import IndexProcessorFacto
|
|||||||
from core.tools.utils.web_reader_tool import get_image_upload_file_ids
|
from core.tools.utils.web_reader_tool import get_image_upload_file_ids
|
||||||
from extensions.ext_database import db
|
from extensions.ext_database import db
|
||||||
from extensions.ext_storage import storage
|
from extensions.ext_storage import storage
|
||||||
|
from models import WorkflowType
|
||||||
from models.dataset import (
|
from models.dataset import (
|
||||||
AppDatasetJoin,
|
AppDatasetJoin,
|
||||||
Dataset,
|
Dataset,
|
||||||
@ -18,9 +19,11 @@ from models.dataset import (
|
|||||||
DatasetQuery,
|
DatasetQuery,
|
||||||
Document,
|
Document,
|
||||||
DocumentSegment,
|
DocumentSegment,
|
||||||
|
Pipeline,
|
||||||
SegmentAttachmentBinding,
|
SegmentAttachmentBinding,
|
||||||
)
|
)
|
||||||
from models.model import UploadFile
|
from models.model import UploadFile
|
||||||
|
from models.workflow import Workflow
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -34,6 +37,7 @@ def clean_dataset_task(
|
|||||||
index_struct: str,
|
index_struct: str,
|
||||||
collection_binding_id: str,
|
collection_binding_id: str,
|
||||||
doc_form: str,
|
doc_form: str,
|
||||||
|
pipeline_id: str | None = None,
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
Clean dataset when dataset deleted.
|
Clean dataset when dataset deleted.
|
||||||
@ -135,6 +139,14 @@ def clean_dataset_task(
|
|||||||
# delete dataset metadata
|
# delete dataset metadata
|
||||||
db.session.query(DatasetMetadata).where(DatasetMetadata.dataset_id == dataset_id).delete()
|
db.session.query(DatasetMetadata).where(DatasetMetadata.dataset_id == dataset_id).delete()
|
||||||
db.session.query(DatasetMetadataBinding).where(DatasetMetadataBinding.dataset_id == dataset_id).delete()
|
db.session.query(DatasetMetadataBinding).where(DatasetMetadataBinding.dataset_id == dataset_id).delete()
|
||||||
|
# delete pipeline and workflow
|
||||||
|
if pipeline_id:
|
||||||
|
db.session.query(Pipeline).where(Pipeline.id == pipeline_id).delete()
|
||||||
|
db.session.query(Workflow).where(
|
||||||
|
Workflow.tenant_id == tenant_id,
|
||||||
|
Workflow.app_id == pipeline_id,
|
||||||
|
Workflow.type == WorkflowType.RAG_PIPELINE,
|
||||||
|
).delete()
|
||||||
# delete files
|
# delete files
|
||||||
if documents:
|
if documents:
|
||||||
for document in documents:
|
for document in documents:
|
||||||
|
|||||||
1232
api/tests/unit_tests/tasks/test_clean_dataset_task.py
Normal file
1232
api/tests/unit_tests/tasks/test_clean_dataset_task.py
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user