Kaynağa Gözat

Merge pull request #2617 from simon824/dev

unique check before import ProcessDefinitions
xingchun-chen 5 yıl önce
ebeveyn
işleme
6127f3a460

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

@@ -782,6 +782,16 @@ public class ProcessDefinitionService extends BaseDAGService {
                     processDefinitionName, 1);
         }
 
+        //unique check
+        Map<String, Object> checkResult = verifyProcessDefinitionName(loginUser, currentProjectName, processDefinitionName);
+        Status status = (Status) checkResult.get(Constants.STATUS);
+        if (Status.SUCCESS.equals(status)) {
+            putMsg(result, Status.SUCCESS);
+        } else {
+            result.putAll(checkResult);
+            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;