diff --git a/backend/plugins/jira/tasks/issue_convertor.go b/backend/plugins/jira/tasks/issue_convertor.go index d5591c138d2..8a329ddf705 100644 --- a/backend/plugins/jira/tasks/issue_convertor.go +++ b/backend/plugins/jira/tasks/issue_convertor.go @@ -41,6 +41,7 @@ var ConvertIssuesMeta = plugin.SubTaskMeta{ } func ConvertIssues(subtaskCtx plugin.SubTaskContext) errors.Error { + logger := subtaskCtx.GetLogger() data := subtaskCtx.GetData().(*JiraTaskData) db := subtaskCtx.GetDal() mappings, err := getTypeMappings(data, db) @@ -163,6 +164,26 @@ func ConvertIssues(subtaskCtx plugin.SubTaskContext) errors.Error { return err } + if !converter.IsIncremental() { + logger.Debug("deleting outdated records for board_issues, issue_assignees and issues") + dalWhere := dal.Where("_raw_data_table in ? AND _raw_data_params = ?", + []string{"_raw_jira_api_issues", "_raw_jira_api_epics"}, + converter.GetRawDataParams(), + ) + if err := db.Delete(ticket.Issue{}, dalWhere); err != nil { + logger.Error(err, "delete issues") + return err + } + if err := db.Delete(ticket.IssueAssignee{}, dalWhere); err != nil { + logger.Error(err, "delete issue_assignees") + return err + } + if err := db.Delete(ticket.BoardIssue{}, dalWhere); err != nil { + logger.Error(err, "delete board_issues") + return err + } + } + return converter.Execute() }