add built-in field check when doing old metadata migrate (#16371)

This commit is contained in:
Jyong
2025-03-20 21:53:49 +08:00
committed by GitHub
parent e324e59930
commit 72191f5b13

View File

@@ -12,6 +12,7 @@ from configs import dify_config
from constants.languages import languages from constants.languages import languages
from core.rag.datasource.vdb.vector_factory import Vector from core.rag.datasource.vdb.vector_factory import Vector
from core.rag.datasource.vdb.vector_type import VectorType from core.rag.datasource.vdb.vector_type import VectorType
from core.rag.index_processor.constant.built_in_field import BuiltInField
from core.rag.models.document import Document from core.rag.models.document import Document
from events.app_event import app_was_created from events.app_event import app_was_created
from extensions.ext_database import db from extensions.ext_database import db
@@ -559,6 +560,10 @@ def old_metadata_migration():
if document.doc_metadata: if document.doc_metadata:
doc_metadata = document.doc_metadata doc_metadata = document.doc_metadata
for key, value in doc_metadata.items(): for key, value in doc_metadata.items():
for field in BuiltInField:
if field.value == key:
break
else:
dataset_metadata = ( dataset_metadata = (
db.session.query(DatasetMetadata) db.session.query(DatasetMetadata)
.filter(DatasetMetadata.dataset_id == document.dataset_id, DatasetMetadata.name == key) .filter(DatasetMetadata.dataset_id == document.dataset_id, DatasetMetadata.name == key)