mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-09-27 01:45:32 +00:00
Fix Migrations
This commit is contained in:
parent
25c8abb729
commit
7bf3668dd9
@ -439,19 +439,19 @@ public class MigrationUtil {
|
|||||||
WorkflowNodeDefinitionInterface versionCheckNode =
|
WorkflowNodeDefinitionInterface versionCheckNode =
|
||||||
JsonUtils.readValue(
|
JsonUtils.readValue(
|
||||||
"""
|
"""
|
||||||
{
|
{
|
||||||
"type": "automatedTask",
|
"type": "automatedTask",
|
||||||
"subType": "checkEntityAttributesTask",
|
"subType": "checkEntityAttributesTask",
|
||||||
"name": "CheckIfGlossaryTermIsNew",
|
"name": "CheckIfGlossaryTermIsNew",
|
||||||
"displayName": "Check if Glossary Term is New",
|
"displayName": "Check if Glossary Term is New",
|
||||||
"config": {
|
"config": {
|
||||||
"rules": "{\\"==\\":[{\\"var\\":\\"version\\"},0.1]}"
|
"rules": "{\\"==\\":[{\\"var\\":\\"version\\"},0.1]}"
|
||||||
},
|
},
|
||||||
"inputNamespaceMap": {
|
"inputNamespaceMap": {
|
||||||
"relatedEntity": "global"
|
"relatedEntity": "global"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
""",
|
""",
|
||||||
WorkflowNodeDefinitionInterface.class);
|
WorkflowNodeDefinitionInterface.class);
|
||||||
nodes.add(versionCheckNode);
|
nodes.add(versionCheckNode);
|
||||||
LOG.info("Added new node: CheckIfGlossaryTermIsNew");
|
LOG.info("Added new node: CheckIfGlossaryTermIsNew");
|
||||||
@ -468,20 +468,21 @@ public class MigrationUtil {
|
|||||||
WorkflowNodeDefinitionInterface inReviewUpdateNode =
|
WorkflowNodeDefinitionInterface inReviewUpdateNode =
|
||||||
JsonUtils.readValue(
|
JsonUtils.readValue(
|
||||||
"""
|
"""
|
||||||
{
|
{
|
||||||
"type": "automatedTask",
|
"type": "automatedTask",
|
||||||
"subType": "setGlossaryTermStatusTask",
|
"subType": "setEntityAttributeTask",
|
||||||
"name": "SetGlossaryTermStatusToInReviewForUpdate",
|
"name": "SetGlossaryTermStatusToInReviewForUpdate",
|
||||||
"displayName": "Set Status to 'In Review' (Update)",
|
"displayName": "Set Status to 'In Review' (Update)",
|
||||||
"config": {
|
"config": {
|
||||||
"glossaryTermStatus": "In Review"
|
"fieldName": "status",
|
||||||
},
|
"fieldValue": "In Review"
|
||||||
"inputNamespaceMap": {
|
},
|
||||||
"relatedEntity": "global",
|
"inputNamespaceMap": {
|
||||||
"updatedBy": "global"
|
"relatedEntity": "global",
|
||||||
}
|
"updatedBy": "global"
|
||||||
}
|
}
|
||||||
""",
|
}
|
||||||
|
""",
|
||||||
WorkflowNodeDefinitionInterface.class);
|
WorkflowNodeDefinitionInterface.class);
|
||||||
nodes.add(inReviewUpdateNode);
|
nodes.add(inReviewUpdateNode);
|
||||||
LOG.info("Added new node: SetGlossaryTermStatusToInReviewForUpdate");
|
LOG.info("Added new node: SetGlossaryTermStatusToInReviewForUpdate");
|
||||||
@ -497,28 +498,27 @@ public class MigrationUtil {
|
|||||||
WorkflowNodeDefinitionInterface unifiedApprovalNode =
|
WorkflowNodeDefinitionInterface unifiedApprovalNode =
|
||||||
JsonUtils.readValue(
|
JsonUtils.readValue(
|
||||||
"""
|
"""
|
||||||
{
|
{
|
||||||
"type": "userTask",
|
"type": "userTask",
|
||||||
"subType": "userApprovalTask",
|
"subType": "userApprovalTask",
|
||||||
"name": "ApprovalForUpdates",
|
"name": "ApprovalForUpdates",
|
||||||
"displayName": "Review Changes for Updates",
|
"displayName": "Review Changes for Updates",
|
||||||
"config": {
|
"config": {
|
||||||
"assignees": {
|
"assignees": {
|
||||||
"addReviewers": true
|
"addReviewers": true
|
||||||
},
|
},
|
||||||
"approvalThreshold": 1,
|
"approvalThreshold": 1,
|
||||||
"rejectionThreshold": 1,
|
"rejectionThreshold": 1
|
||||||
"supportsSuggestions": true
|
},
|
||||||
},
|
"inputNamespaceMap": {
|
||||||
"inputNamespaceMap": {
|
"relatedEntity": "global"
|
||||||
"relatedEntity": "global"
|
},
|
||||||
},
|
"output": ["updatedBy"]
|
||||||
"output": ["updatedBy"]
|
}
|
||||||
}
|
""",
|
||||||
""",
|
|
||||||
WorkflowNodeDefinitionInterface.class);
|
WorkflowNodeDefinitionInterface.class);
|
||||||
nodes.add(unifiedApprovalNode);
|
nodes.add(unifiedApprovalNode);
|
||||||
LOG.info("Added new node: ApprovalForUpdates (unified task with suggestions)");
|
LOG.info("Added new node: ApprovalForUpdates");
|
||||||
nodesAdded = true;
|
nodesAdded = true;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOG.error("Failed to add ApprovalForUpdates node", e);
|
LOG.error("Failed to add ApprovalForUpdates node", e);
|
||||||
@ -531,18 +531,18 @@ public class MigrationUtil {
|
|||||||
WorkflowNodeDefinitionInterface rollbackNode =
|
WorkflowNodeDefinitionInterface rollbackNode =
|
||||||
JsonUtils.readValue(
|
JsonUtils.readValue(
|
||||||
"""
|
"""
|
||||||
{
|
{
|
||||||
"type": "automatedTask",
|
"type": "automatedTask",
|
||||||
"subType": "rollbackEntityTask",
|
"subType": "rollbackEntityTask",
|
||||||
"name": "RollbackGlossaryTermChanges",
|
"name": "RollbackGlossaryTermChanges",
|
||||||
"displayName": "Rollback Glossary Term Changes",
|
"displayName": "Rollback Glossary Term Changes",
|
||||||
"config": {},
|
"config": {},
|
||||||
"inputNamespaceMap": {
|
"inputNamespaceMap": {
|
||||||
"relatedEntity": "global",
|
"relatedEntity": "global",
|
||||||
"updatedBy": "ApprovalForUpdates"
|
"updatedBy": "ApprovalForUpdates"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
""",
|
""",
|
||||||
WorkflowNodeDefinitionInterface.class);
|
WorkflowNodeDefinitionInterface.class);
|
||||||
nodes.add(rollbackNode);
|
nodes.add(rollbackNode);
|
||||||
LOG.info("Added new node: RollbackGlossaryTermChanges");
|
LOG.info("Added new node: RollbackGlossaryTermChanges");
|
||||||
@ -559,20 +559,21 @@ public class MigrationUtil {
|
|||||||
WorkflowNodeDefinitionInterface approvedDetailedNode =
|
WorkflowNodeDefinitionInterface approvedDetailedNode =
|
||||||
JsonUtils.readValue(
|
JsonUtils.readValue(
|
||||||
"""
|
"""
|
||||||
{
|
{
|
||||||
"type": "automatedTask",
|
"type": "automatedTask",
|
||||||
"subType": "setGlossaryTermStatusTask",
|
"subType": "setEntityAttributeTask",
|
||||||
"name": "SetGlossaryTermStatusToApprovedAfterReview",
|
"name": "SetGlossaryTermStatusToApprovedAfterReview",
|
||||||
"displayName": "Set Status to 'Approved' (After Review)",
|
"displayName": "Set Status to 'Approved' (After Review)",
|
||||||
"config": {
|
"config": {
|
||||||
"glossaryTermStatus": "Approved"
|
"fieldName": "status",
|
||||||
},
|
"fieldValue": "Approved"
|
||||||
"inputNamespaceMap": {
|
},
|
||||||
"relatedEntity": "global",
|
"inputNamespaceMap": {
|
||||||
"updatedBy": "ApprovalForUpdates"
|
"relatedEntity": "global",
|
||||||
}
|
"updatedBy": "ApprovalForUpdates"
|
||||||
}
|
}
|
||||||
""",
|
}
|
||||||
|
""",
|
||||||
WorkflowNodeDefinitionInterface.class);
|
WorkflowNodeDefinitionInterface.class);
|
||||||
nodes.add(approvedDetailedNode);
|
nodes.add(approvedDetailedNode);
|
||||||
LOG.info("Added new node: SetGlossaryTermStatusToApprovedAfterReview");
|
LOG.info("Added new node: SetGlossaryTermStatusToApprovedAfterReview");
|
||||||
@ -588,13 +589,13 @@ public class MigrationUtil {
|
|||||||
WorkflowNodeDefinitionInterface rollbackEndNode =
|
WorkflowNodeDefinitionInterface rollbackEndNode =
|
||||||
JsonUtils.readValue(
|
JsonUtils.readValue(
|
||||||
"""
|
"""
|
||||||
{
|
{
|
||||||
"type": "endEvent",
|
"type": "endEvent",
|
||||||
"subType": "endEvent",
|
"subType": "endEvent",
|
||||||
"name": "RollbackEnd",
|
"name": "RollbackEnd",
|
||||||
"displayName": "Changes Rolled Back"
|
"displayName": "Changes Rolled Back"
|
||||||
}
|
}
|
||||||
""",
|
""",
|
||||||
WorkflowNodeDefinitionInterface.class);
|
WorkflowNodeDefinitionInterface.class);
|
||||||
nodes.add(rollbackEndNode);
|
nodes.add(rollbackEndNode);
|
||||||
LOG.info("Added new node: RollbackEnd");
|
LOG.info("Added new node: RollbackEnd");
|
||||||
@ -610,13 +611,13 @@ public class MigrationUtil {
|
|||||||
WorkflowNodeDefinitionInterface changeReviewEndNode =
|
WorkflowNodeDefinitionInterface changeReviewEndNode =
|
||||||
JsonUtils.readValue(
|
JsonUtils.readValue(
|
||||||
"""
|
"""
|
||||||
{
|
{
|
||||||
"type": "endEvent",
|
"type": "endEvent",
|
||||||
"subType": "endEvent",
|
"subType": "endEvent",
|
||||||
"name": "ChangeReviewEnd",
|
"name": "ChangeReviewEnd",
|
||||||
"displayName": "Approved After Change Review"
|
"displayName": "Approved After Change Review"
|
||||||
}
|
}
|
||||||
""",
|
""",
|
||||||
WorkflowNodeDefinitionInterface.class);
|
WorkflowNodeDefinitionInterface.class);
|
||||||
nodes.add(changeReviewEndNode);
|
nodes.add(changeReviewEndNode);
|
||||||
LOG.info("Added new node: ChangeReviewEnd");
|
LOG.info("Added new node: ChangeReviewEnd");
|
||||||
@ -837,15 +838,17 @@ public class MigrationUtil {
|
|||||||
boolean triggerModified = false;
|
boolean triggerModified = false;
|
||||||
|
|
||||||
// Check if there's an entityType field (old format)
|
// Check if there's an entityType field (old format)
|
||||||
if (configObj.has("entityType") && !configObj.has("entityTypes")) {
|
if (configObj.has("entityType")) {
|
||||||
String entityType = configObj.get("entityType").asText();
|
String entityType = configObj.get("entityType").asText();
|
||||||
configObj.remove("entityType");
|
|
||||||
|
|
||||||
// Create entityTypes array with the single value
|
// Create entityTypes array with the single value
|
||||||
ArrayNode entityTypesArray = mapper.createArrayNode();
|
ArrayNode entityTypesArray = mapper.createArrayNode();
|
||||||
entityTypesArray.add(entityType);
|
entityTypesArray.add(entityType);
|
||||||
configObj.set("entityTypes", entityTypesArray);
|
configObj.set("entityTypes", entityTypesArray);
|
||||||
|
|
||||||
|
// Remove the old entityType field
|
||||||
|
configObj.remove("entityType");
|
||||||
|
|
||||||
LOG.info(
|
LOG.info(
|
||||||
"Updated trigger from entityType='{}' to entityTypes=['{}']",
|
"Updated trigger from entityType='{}' to entityTypes=['{}']",
|
||||||
entityType,
|
entityType,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user