| 
					
				 | 
			
			
				@@ -259,6 +259,25 @@ def migrate_knowledge_vector_database(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     skipped_count = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     total_count = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     vector_type = dify_config.VECTOR_STORE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    upper_colletion_vector_types = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.MILVUS, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.PGVECTOR, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.RELYT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.WEAVIATE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.ORACLE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.ELASTICSEARCH, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    lower_colletion_vector_types = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.ANALYTICDB, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.CHROMA, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.MYSCALE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.PGVECTO_RS, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.TIDB_VECTOR, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.OPENSEARCH, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.TENCENT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.BAIDU, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        VectorType.VIKINGDB, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     page = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     while True: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -284,11 +303,9 @@ def migrate_knowledge_vector_database(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         skipped_count = skipped_count + 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 collection_name = "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if vector_type == VectorType.WEAVIATE: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset_id = dataset.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                dataset_id = dataset.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if vector_type in upper_colletion_vector_types: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     collection_name = Dataset.gen_collection_name_by_id(dataset_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    index_struct_dict = {"type": VectorType.WEAVIATE, "vector_store": {"class_prefix": collection_name}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset.index_struct = json.dumps(index_struct_dict) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 elif vector_type == VectorType.QDRANT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if dataset.collection_binding_id: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         dataset_collection_binding = ( 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -301,63 +318,15 @@ def migrate_knowledge_vector_database(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             raise ValueError("Dataset Collection Binding not found") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        dataset_id = dataset.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         collection_name = Dataset.gen_collection_name_by_id(dataset_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    index_struct_dict = {"type": VectorType.QDRANT, "vector_store": {"class_prefix": collection_name}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset.index_struct = json.dumps(index_struct_dict) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                elif vector_type == VectorType.MILVUS: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset_id = dataset.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    collection_name = Dataset.gen_collection_name_by_id(dataset_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    index_struct_dict = {"type": VectorType.MILVUS, "vector_store": {"class_prefix": collection_name}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset.index_struct = json.dumps(index_struct_dict) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                elif vector_type == VectorType.RELYT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset_id = dataset.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    collection_name = Dataset.gen_collection_name_by_id(dataset_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    index_struct_dict = {"type": "relyt", "vector_store": {"class_prefix": collection_name}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset.index_struct = json.dumps(index_struct_dict) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                elif vector_type == VectorType.TENCENT: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset_id = dataset.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    collection_name = Dataset.gen_collection_name_by_id(dataset_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    index_struct_dict = {"type": VectorType.TENCENT, "vector_store": {"class_prefix": collection_name}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset.index_struct = json.dumps(index_struct_dict) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                elif vector_type == VectorType.PGVECTOR: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset_id = dataset.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    collection_name = Dataset.gen_collection_name_by_id(dataset_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    index_struct_dict = {"type": VectorType.PGVECTOR, "vector_store": {"class_prefix": collection_name}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset.index_struct = json.dumps(index_struct_dict) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                elif vector_type == VectorType.OPENSEARCH: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset_id = dataset.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    collection_name = Dataset.gen_collection_name_by_id(dataset_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    index_struct_dict = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        "type": VectorType.OPENSEARCH, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        "vector_store": {"class_prefix": collection_name}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset.index_struct = json.dumps(index_struct_dict) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                elif vector_type == VectorType.ANALYTICDB: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset_id = dataset.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    collection_name = Dataset.gen_collection_name_by_id(dataset_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    index_struct_dict = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        "type": VectorType.ANALYTICDB, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        "vector_store": {"class_prefix": collection_name}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset.index_struct = json.dumps(index_struct_dict) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                elif vector_type == VectorType.ELASTICSEARCH: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset_id = dataset.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    index_name = Dataset.gen_collection_name_by_id(dataset_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    index_struct_dict = {"type": "elasticsearch", "vector_store": {"class_prefix": index_name}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset.index_struct = json.dumps(index_struct_dict) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                elif vector_type == VectorType.BAIDU: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset_id = dataset.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    collection_name = Dataset.gen_collection_name_by_id(dataset_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    index_struct_dict = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        "type": VectorType.BAIDU, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        "vector_store": {"class_prefix": collection_name}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    dataset.index_struct = json.dumps(index_struct_dict) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                elif vector_type in lower_colletion_vector_types: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    collection_name = Dataset.gen_collection_name_by_id(dataset_id).lower() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     raise ValueError(f"Vector store {vector_type} is not supported.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                index_struct_dict = {"type": vector_type, "vector_store": {"class_prefix": collection_name}} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                dataset.index_struct = json.dumps(index_struct_dict) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 vector = Vector(dataset) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 click.echo(f"Migrating dataset {dataset.id}.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |