Ver Fonte

unique check before import ProcessDefinitions

张世鸣 há 4 anos atrás
pai
commit
9395abb155

+ 7 - 0
dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ProcessDefinitionService.java

@@ -782,6 +782,13 @@ public class ProcessDefinitionService extends BaseDAGService {
                     processDefinitionName, 1);
         }
 
+        //unique check
+        result = verifyProcessDefinitionName(loginUser, currentProjectName, processDefinitionName);
+        Status status = (Status) result.get(Constants.STATUS);
+        if (!Status.SUCCESS.equals(status)) {
+            return false;
+        }
+
         // get create process result
         Map<String, Object> createProcessResult =
                 getCreateProcessResult(loginUser,

+ 1 - 0
sql/dolphinscheduler_mysql.sql

@@ -415,6 +415,7 @@ CREATE TABLE `t_ds_process_definition` (
   `modify_by` varchar(255) DEFAULT NULL,
   `resource_ids` varchar(255) DEFAULT NULL,
   PRIMARY KEY (`id`),
+  UNIQUE KEY `process_definition_unique` (`name`,`project_id`),
   KEY `process_definition_index` (`project_id`,`id`) USING BTREE
 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;