OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2021-12-27 b2b9e785e10c8fd59c3fcee8c8fda2aeb86be8c3
Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa
1개 파일 추가됨
12개 파일 변경됨
14개 파일 삭제됨
1760 ■■■■ 파일 변경됨
src/main/java/kr/wisestone/owl/constant/MsgConstants.java 3 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/data/CheckIssueData.java 45 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/domain/CustomFieldApiOverlap.java 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/WorkflowTransitionService.java 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java 106 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/service/impl/WorkflowTransitionServiceImpl.java 7 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/util/CommonUtil.java 28 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/controller/ApiController.java 44 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/web/form/IssueApiForm.java 9 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_10__Alter_Table.sql 26 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_11__Alter_Table.sql 214 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_12__Alter_Table.sql 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_13__Alter_Table.sql 17 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_14__Alter_Table.sql 16 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_15__Alter_Table.sql 22 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_1__Initial_Setup.sql 849 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_2__Alter_Table.sql 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_2__insert_default_data.sql 143 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_3__Alter_Table.sql 2 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_4__Alter_Table.sql 14 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_5__Alter_Table.sql 10 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_6__Alter_Table.sql 59 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_7__Alter_Table.sql 1 ●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_8__Alter_Table.sql 63 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/migration/V1_9__Alter_Table.sql 71 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/resources/mybatis/query-template/companyField-template.xml 3 ●●●●● 패치 | 보기 | raw | blame | 히스토리
src/main/webapp/assets/styles/main.css 2 ●●● 패치 | 보기 | raw | blame | 히스토리
src/main/java/kr/wisestone/owl/constant/MsgConstants.java
@@ -251,4 +251,7 @@
    public static final String API_ISSUE_NOT_EXIST = "API_ISSUE_NOT_EXIST";     // 수정할 이슈를 찾을수 없습니다.
    public static final String API_COMPLETE_ISSUE_STATUS_NOT_EXIST = "API_COMPLETE_ISSUE_STATUS_NOT_EXIST";     // 자동 종료 처리할 상태가 설정되지 않았습니다.
    public static final String API_ISSUE_STATUS_NOT_EXIST = "API_ISSUE_STATUS_NOT_EXIST";     // 이슈 상태를 찾을수 없습니다
    public static final String API_ISSUE_STATUS_IS_NULL = "API_ISSUE_STATUS_IS_NULL";     // 이슈 상태 값이 없습니다.
    public static final String API_CUSTOM_FIELD_NOT_EXIST = "API_CUSTOM_FIELD_NOT_EXIST";     // 사용자 정의 필드를 존재하지 않습니다.
    public static final String API_ISSUE_STATUS_NOT_IN_WORKFLOW = "API_ISSUE_STATUS_NOT_IN_WORKFLOW";     // 이슈 상태가 워크플로우에 포함되어 있지 않습니다
}
src/main/java/kr/wisestone/owl/data/CheckIssueData.java
@@ -1,12 +1,8 @@
package kr.wisestone.owl.data;
import kr.wisestone.owl.config.CommonConfiguration;
import kr.wisestone.owl.domain.*;
import kr.wisestone.owl.service.*;
import kr.wisestone.owl.util.ConvertUtil;
import kr.wisestone.owl.web.form.IssueForm;
import org.springframework.beans.factory.annotation.Autowired;
// issue 유효성 체크용 클래스
public class CheckIssueData {
@@ -18,48 +14,7 @@
    Priority priority;
    Severity severity;
    @Autowired
    private IssueService issueService;
    @Autowired
    private WorkspaceService workspaceService;
    @Autowired
    private ProjectService projectService;
    @Autowired
    private IssueStatusService issueStatusService;
    @Autowired
    private IssueTypeService issueTypeService;
    @Autowired
    private PriorityService priorityService;
    @Autowired
    private SeverityService severityService;
    public CheckIssueData() {}
    public boolean CheckData(User user, IssueForm issueForm) {
        //  사용하고 있는 업무 공간이 활성 상태인지 확인한다. 사용 공간에서 로그인한 사용자가 비활성인지 확인한다.
        this.workspaceService.checkUseWorkspace(user, user.getLastWorkspaceId());
        Issue issue = this.issueService.getIssue(issueForm.getId());
        IssueStatus oldIssueStatus = issue.getIssueStatus();
        //  프로젝트 유효성 체크
        Project project = this.projectService.getProject(issueForm.getProjectId());
        //  이슈 상태 유효성 체크
        IssueStatus issueStatus = this.issueStatusService.getIssueStatus(issueForm.getIssueStatusId());
        //  이슈 유형 유효성 체크
        IssueType issueType = this.issueTypeService.getIssueType(issueForm.getIssueTypeId());
        //  우선순위 유효성 체크
        Priority priority = this.priorityService.getPriority(issueForm.getPriorityId());
        //  중요도 유효성 체크
        Severity severity = this.severityService.getSeverity(issueForm.getSeverityId());
        return true;
    }
    public Issue getIssue() {
        return issue;
src/main/java/kr/wisestone/owl/domain/CustomFieldApiOverlap.java
@@ -24,7 +24,7 @@
    @JoinColumn(name = "issue_type_id")
    private IssueType issueType;
    @ManyToOne(fetch = FetchType.LAZY)
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "custom_field_id")
    private CustomField customField;
src/main/java/kr/wisestone/owl/service/WorkflowTransitionService.java
@@ -16,6 +16,8 @@
    List<WorkflowTransition> findByWorkflowId(Long workflowId);
    boolean contains(Long issueStatusId, Long workflowId);
    List<WorkflowTransitionVo> findBySourceIssueStatusIdAndWorkflowId(Long sourceIssueStatusId, Long workflowId);
    void modify(Workflow workflow, List<IssueStatusVo> issueStatusVos);
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -187,6 +187,9 @@
    private UserDepartmentService userDepartmentService;
    @Autowired
    private WorkflowTransitionService workflowTransitionService;
    @Autowired
    private UserDepartmentRepository userDepartmentRepository;
    @Autowired
@@ -194,6 +197,9 @@
    @Autowired
    private WorkflowDepartmentRepository workflowDepartmentRepository;
    @Autowired
    WorkflowService workflowService;
    @Override
    protected JpaRepository<Issue, Long> getRepository() {
@@ -234,7 +240,6 @@
        }
        Workflow workflow = issueType.getWorkflow();
        if (issueApiForm.getApiType().equals(IssueApiForm.ApiType.add)) {
            // 이슈 상태가 지정되어 있지 않을 경우 워크플로우 대기 상태 값으로 지정
            List<Long> departmentIds = this.workflowDepartmentService.findFirstDepartmentIds(workflow);
@@ -243,8 +248,15 @@
                    issueForm.addDepartmentId(departmentId);
                }
            }
        } else if (issueApiForm.getIssueStatusId() == null){
            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_ISSUE_STATUS_NOT_EXIST));
        } else {
            if (issueApiForm.getIssueStatusId() == null){
                throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_ISSUE_STATUS_IS_NULL));
            }
            // 워크플로우에서 사용 중인 이슈 상태인지 체크
            else if (!this.workflowTransitionService.contains(issueApiForm.getIssueStatusId(), workflow.getId())) {
                throw new OwlRuntimeException(
                        this.messageAccessor.getMessage(MsgConstants.API_ISSUE_STATUS_NOT_IN_WORKFLOW));
            }
        }
        // 프로젝트 입력
@@ -280,6 +292,20 @@
            if (customFieldApiOverlaps != null && customFieldApiOverlaps.size() > 0) {
                for (int i = 0; i < customFieldApiOverlaps.size(); i++) {
                    CustomFieldApiOverlap customFieldApiOverlap = customFieldApiOverlaps.get(i);
                    CustomField customField = customFieldApiOverlap.getCustomField();
                    if (customField.getCustomFieldType() == CustomFieldType.SITE) {
                        for (Map<String, Object> map : issueApiForm.getCustomFieldValues()) {
                            if (customField.getId().equals(MapUtil.getLong(map, "customFieldId"))) {
                                String fullUrl = MapUtil.getString(map, "useValue");
                                String url = CommonUtil.getUrl(fullUrl);
                                if (!url.equals("")) {
                                    issueApiForm.setUrl(fullUrl);
                                    break;
                                }
                            }
                        }
                    }
                    issueApiForm.addUseIssueCustomFieldId(customFieldApiOverlap.getCustomField().getId());
                }
@@ -301,7 +327,7 @@
            // 사용자 정의 필드 설정
            issueForm.setIssueCustomFields(issueApiForm.getCustomFieldValues());
            //  같은 도메인 업체 찾기
            this.findCompanyField(issueForm);
            this.findCompanyField(issueForm, issueApiForm.getUrl());
            // api 입력값 적용
            ConvertUtil.copyProperties(issueApiForm, issueForm);
@@ -313,45 +339,36 @@
        }
    }
    private void findCompanyField(IssueForm issueForm) {
    private void findCompanyField(IssueForm issueForm, String url) {
        if(issueForm.getIssueCustomFields() != null && issueForm.getIssueCustomFields().size() > 0) {
            CompanyFieldCondition condition = new CompanyFieldCondition();
            condition.setUrl(url);
            List<Map<String, Object>> companyFields = this.companyFieldService.find(condition);
            List<Map<String, Object>> issueCompanyFields = Lists.newArrayList();
            List<Map<String, Object>> issueIspFields = Lists.newArrayList();
            List<Map<String, Object>> issueHostingFields = Lists.newArrayList();
            for (Map<String, Object> issueCustomField : issueForm.getIssueCustomFields()) {
                int customFieldId = (Integer) issueCustomField.get("customFieldId");
                Long customId = (long) customFieldId;
                CustomField customField = this.customFieldService.getCustomField(customId);
                if(customField != null && customField.getCustomFieldType().toString().equals("SITE") && customField.getName().equals("도메인")) {
                    String useValue = issueCustomField.get("useValue").toString();
                    if(companyFields != null && companyFields.size() > 0) {
                        for (Map<String, Object> companyField : companyFields) {
                            CompanyFieldVo companyFieldVo = ConvertUtil.convertMapToClass(companyField, CompanyFieldVo.class);
                            if(useValue.equals(companyFieldVo.getUrl())) {
                                companyField.put("companyId", companyField.get("id"));
                                issueCompanyFields.add(companyField);
                                if(companyFieldVo.getIspId() != null) {
                                    Map<String, Object> ispField = this.ispFieldService.find(companyFieldVo.getIspId());
                                    if (ispField != null) {
                                        ispField.put("ispId", ispField.get("id"));
                                        issueIspFields.add(ispField);
                                    }
                                }
                                if(companyFieldVo.getHostingId() != null) {
                                    Map<String, Object> hostingField = this.hostingFieldService.find(companyFieldVo.getHostingId());
                                    if (hostingField != null) {
                                        hostingField.put("hostingId", hostingField.get("id"));
                                        issueHostingFields.add(hostingField);
                                    }
                                }
                            }
                        }
                    }
                }
            if (companyFields != null && companyFields.size() > 0) {
                Map<String, Object> companyFieldMap = companyFields.get(0);
                companyFieldMap.put("companyId", companyFieldMap.get("id"));
                issueCompanyFields.add(companyFieldMap);
                issueForm.setIssueCompanyFields(issueCompanyFields);
                IspField ispField = this.ispFieldService.getIsp(MapUtil.getLong(companyFieldMap, "ispId"));
                if (ispField != null) {
                    Map<String, Object> ispFieldMap = ConvertUtil.convertObjectToMap(ispField);
                    ispFieldMap.put("ispId", ispField.getId());
                    issueIspFields.add(ispFieldMap);
                }
                HostingField hostingField = this.hostingFieldService.getHosting(MapUtil.getLong(companyFieldMap, "hostingId"));
                if (hostingField != null) {
                    Map<String, Object> hostingFieldMap = ConvertUtil.convertObjectToMap(hostingField);
                    hostingFieldMap.put("hostingId", hostingField.getId());
                    issueHostingFields.add(hostingFieldMap);
                }
                issueForm.setIssueIspFields(issueIspFields);
                issueForm.setIssueHostingFields(issueHostingFields);
            }
@@ -928,7 +945,7 @@
//        if (!this.userWorkspaceService.checkWorkspaceManager(user)
//                && !MngPermission.checkMngPermission(userLevel.getPermission(), MngPermission.USER_PERMISSION_MNG_ISSUE)) { //최고관리자 & 프로젝트,이슈 관리자 일 경우 모든 이슈 보기
//            this.SetMyDepartmentId(issueCondition);
            //this.SetAllDepartmentId(issueCondition);
        //this.SetAllDepartmentId(issueCondition);
//        } /*else{
//            results = this.issueMapper.findByDepartment(issueCondition);
//            totalCount = this.issueMapper.countByDepartment(issueCondition);
@@ -1812,15 +1829,14 @@
                Issue parentIssue = modifyIssue.getParentIssue();
                IssueType issueType = modifyIssue.getIssueType();
                Set<IssueTypeApiEndStatus> issueTypeApiEndStatuses = issueType.getIssueTypeApiEndStatuses();
                IssueTypeApiEndStatus issueStatus = null;
                if (issueTypeApiEndStatuses != null && issueTypeApiEndStatuses.size() > 0) {
                    issueStatus = issueTypeApiEndStatuses.iterator().next();
                } else {
                    throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_COMPLETE_ISSUE_STATUS_NOT_EXIST));
                }
                if (parentIssue != null) {
                    Set<IssueTypeApiEndStatus> issueTypeApiEndStatuses = issueType.getIssueTypeApiEndStatuses();
                    IssueTypeApiEndStatus issueStatus = null;
                    if (issueTypeApiEndStatuses != null && issueTypeApiEndStatuses.size() > 0) {
                        issueStatus = issueTypeApiEndStatuses.iterator().next();
                    } else {
                        throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_COMPLETE_ISSUE_STATUS_NOT_EXIST));
                    }
                    IssueCondition issueCondition = new IssueCondition(issueVo.getId(), parentIssue.getId());
                    List<Map<String, Object>> results = this.issueMapper.findNotCompleteByParentIssueId(issueCondition);
@@ -3448,7 +3464,7 @@
        }
    }
    //  사용자 정의 필드 정보를 IssueForm 에 저장한다.-
    //  사용자 정의 필드 정보를 IssueForm 에 저장한다.
    private void setIssueFormCustomFieldValue(Cell cell, Map<String, CustomField> customFieldMaps, IssueForm issueForm, String customFieldName, int rowIndex) {
        if (cell != null) {
            String cellValue = CommonUtil.convertExcelStringToCell(cell);
src/main/java/kr/wisestone/owl/service/impl/WorkflowTransitionServiceImpl.java
@@ -131,6 +131,13 @@
        return this.workflowTransitionRepository.findByWorkflowId(workflowId);
    }
    // 워크플로우에 사용되는 이슈 상태인지 확인한다
    @Override
    public boolean contains(Long issueStatusId, Long workflowId) {
        List<WorkflowTransitionVo> workflowTransitionVos = this.findBySourceIssueStatusIdAndWorkflowId(issueStatusId, workflowId);
        return workflowTransitionVos != null && workflowTransitionVos.size() > 0;
    }
    //  이슈 상태와 연결된 전이선 정보를 조회한다.
    @Override
    @Transactional(readOnly = true)
src/main/java/kr/wisestone/owl/util/CommonUtil.java
@@ -42,6 +42,8 @@
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CommonUtil {
    private static final Logger LOGGER = LoggerFactory.getLogger(CommonUtil.class);
@@ -1005,4 +1007,30 @@
        }
    }
    // 메인 url만 추출
    public static String extractUrl(String content){
        try {
            String REGEX = "(http(s)?:\\/\\/)([a-z0-9\\w]+\\.*)+[a-z0-9]{2,4}";
            Pattern p = Pattern.compile(REGEX, Pattern.CASE_INSENSITIVE);
            Matcher m = p.matcher(content);
            if (m.find()) {
                return m.group();
            }
            return "";
        } catch (Exception e) {
            return "";
        }
    }
    // 메인 url 추출을 위해 http: 확인
    public static String getUrl(String fullUrl) {
        if (fullUrl != null) {
            if (fullUrl.indexOf("http") == -1) {
                fullUrl = "http://" + fullUrl;
            }
            return extractUrl(fullUrl);
        }
        return "";
    }
}
src/main/java/kr/wisestone/owl/web/controller/ApiController.java
@@ -3,16 +3,12 @@
import kr.wisestone.owl.constant.Constants;
import kr.wisestone.owl.constant.MsgConstants;
import kr.wisestone.owl.domain.Issue;
import kr.wisestone.owl.domain.User;
import kr.wisestone.owl.exception.OwlRuntimeException;
import kr.wisestone.owl.service.IssueService;
import kr.wisestone.owl.util.ConvertUtil;
import kr.wisestone.owl.web.form.IssueApiForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@@ -28,19 +24,6 @@
    @Autowired
    private IssueService issueService;
    //  이슈 추가(json 방식으로 파일전송)
//    @RequestMapping(value = "api/issue", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
//    public
//    @ResponseBody
//    Map<String, Object> addIssue(@RequestBody Map<String, Map<String, Object>> params) {
//        Map<String, Object> resJsonData = new HashMap<>();
//
//        IssueApiForm issueForm = IssueApiForm.make(params.get(Constants.REQ_KEY_CONTENT));
//        Issue issue = this.issueService.addApiIssue(issueForm);
//        //  버전 생성
//        this.issueService.addIssueVersion(issue.getId());
//        return this.setSuccessMessage(resJsonData);
//    }
    @RequestMapping(value = "api/issue", method = RequestMethod.POST)
    public
    @ResponseBody
@@ -53,6 +36,11 @@
        if (issueForm == null) {
            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_PARAMETER_ERROR));
        }
        // 사용자 정의 필드가 없을 경우 검색을 할 수 없기 때문에 예외처리
        else if (issueForm.getCustomFieldValues() == null || issueForm.getCustomFieldValues().size() == 0) {
            throw new OwlRuntimeException(this.messageAccessor.getMessage(MsgConstants.API_CUSTOM_FIELD_NOT_EXIST));
        }
        if (issueForm.getApiType() == IssueApiForm.ApiType.add) {
            List<Issue> issues = this.issueService.addApiIssue(issueForm);
            //  버전 생성
@@ -60,6 +48,8 @@
                this.issueService.addIssueVersion(issue.getId(), issue.getRegisterId());
            }
        } else {
            this.issueService.modifyIssue(issueForm, request.getFiles("file"));
        }
@@ -67,15 +57,15 @@
    }
    //  이슈 조회
    @RequestMapping(value = "/api/issueList", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
    public
    @ResponseBody
    Map<String, Object> find(@RequestBody Map<String, Map<String, Object>> params) {
        Map<String, Object> resJsonData = new HashMap<>();
        Pageable pageable = this.pageUtil.convertPageable(this.getPageVo(params));
        // todo
        return this.setSuccessMessage(resJsonData);
    }
//    @RequestMapping(value = "/api/issueList", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
//    public
//    @ResponseBody
//    Map<String, Object> find(@RequestBody Map<String, Map<String, Object>> params) {
//        Map<String, Object> resJsonData = new HashMap<>();
//        Pageable pageable = this.pageUtil.convertPageable(this.getPageVo(params));
//
//        // todo
//        return this.setSuccessMessage(resJsonData);
//    }
}
src/main/java/kr/wisestone/owl/web/form/IssueApiForm.java
@@ -31,6 +31,7 @@
    private List<Map<String, Object>> CustomFieldValues = Lists.newArrayList();
    private List<MultipartFile> multipartFiles = Lists.newArrayList();
    private List<Long> useIssueCustomFieldIds = Lists.newArrayList();       // 사위일감용 사용자필드값
    private String url;             // 탐지 시스템에서만 적용
    public IssueApiForm() {
    }
@@ -228,4 +229,12 @@
            this.useIssueCustomFieldIds.add(customFieldId);
        }
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
}
src/main/resources/migration/V1_10__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_11__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_12__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_13__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_14__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_15__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_1__Initial_Setup.sql
@@ -1,8 +1,8 @@
-- --------------------------------------------------------
-- 호스트:                          192.168.0.64
-- 서버 버전:                        10.1.13-MariaDB - Source distribution
-- 서버 OS:                        Linux
-- HeidiSQL 버전:                  10.1.0.5464
-- 호스트:                          127.0.0.1
-- 서버 버전:                        10.5.8-MariaDB - mariadb.org binary distribution
-- 서버 OS:                        Win64
-- HeidiSQL 버전:                  11.0.0.5919
-- --------------------------------------------------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
@@ -11,8 +11,21 @@
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-- 테이블 dev_db.api_token 구조 내보내기
CREATE TABLE IF NOT EXISTS `api_token` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(50) NOT NULL,
    `app_name` varchar(50) NOT NULL,
    `token` varchar(1024) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `userIdIndex` (`user_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.attached_file 구조 내보내기
-- 테이블 dev_db.attached_file 구조 내보내기
CREATE TABLE IF NOT EXISTS `attached_file` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `issue_id` bigint(20) DEFAULT NULL,
@@ -27,16 +40,34 @@
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    `aws_key` varchar(255) DEFAULT NULL,
    `attached_type` varchar(20) NOT NULL,
    PRIMARY KEY (`id`),
    KEY `issueIdIndex` (`issue_id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.attached_file:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `attached_file` DISABLE KEYS */;
/*!40000 ALTER TABLE `attached_file` ENABLE KEYS */;
-- 테이블 dev_db.company_field 구조 내보내기
CREATE TABLE IF NOT EXISTS `company_field` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(50) NOT NULL,
    `manager` varchar(50) DEFAULT NULL,
    `tel` varchar(50) DEFAULT NULL,
    `email` varchar(255) DEFAULT NULL,
    `memo` varchar(255) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    `url` varchar(255) DEFAULT NULL,
    `isp_id` bigint(20) DEFAULT NULL,
    `hosting_id` bigint(20) DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `urlIndex` (`url`),
    KEY `ispIdIndex` (`isp_id`),
    KEY `hostingIdIndex` (`hosting_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.custom_field 구조 내보내기
-- 테이블 dev_db.custom_field 구조 내보내기
CREATE TABLE IF NOT EXISTS `custom_field` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
@@ -45,34 +76,160 @@
    `default_value` varchar(100) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    `use_flag` varchar(1) NOT NULL DEFAULT 'Y',
    `required_data` varchar(1) NOT NULL DEFAULT 'N',
    PRIMARY KEY (`id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.custom_field:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `custom_field` DISABLE KEYS */;
/*!40000 ALTER TABLE `custom_field` ENABLE KEYS */;
-- 테이블 dev_db.custom_field_api_default 구조 내보내기
CREATE TABLE IF NOT EXISTS `custom_field_api_default` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(11) NOT NULL,
    `issue_type_id` bigint(11) NOT NULL,
    `custom_field_id` bigint(11) NOT NULL,
    `custom_field_value` varchar(300) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `userIdIndex` (`user_id`) USING BTREE,
    KEY `issueTypeIdIndex` (`issue_type_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.custom_field_value 구조 내보내기
-- 테이블 dev_db.custom_field_api_overlap 구조 내보내기
CREATE TABLE IF NOT EXISTS `custom_field_api_overlap` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(11) NOT NULL,
    `issue_type_id` bigint(11) NOT NULL,
    `custom_field_id` bigint(11) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    `project_id` bigint(20) DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `userIdIndex` (`user_id`) USING BTREE,
    KEY `issueTypeIdIndex` (`issue_type_id`) USING BTREE,
    KEY `projectIdIndex` (`project_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.custom_field_value 구조 내보내기
CREATE TABLE IF NOT EXISTS `custom_field_value` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `custom_field_id` bigint(20) NOT NULL,
    `value` varchar(100) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `customFieldIdIndex` (`custom_field_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.custom_field_value:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `custom_field_value` DISABLE KEYS */;
/*!40000 ALTER TABLE `custom_field_value` ENABLE KEYS */;
-- 테이블 dev_db.department 구조 내보내기
CREATE TABLE IF NOT EXISTS `department` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `department_name` varchar(50) NOT NULL,
    `department_description` varchar(255) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue 구조 내보내기
-- 테이블 dev_db.email_template 구조 내보내기
CREATE TABLE IF NOT EXISTS `email_template` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `title` varchar(255) NOT NULL,
    `template` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.event 구조 내보내기
CREATE TABLE IF NOT EXISTS `event` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `title` varchar(200) NOT NULL,
    `description` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `start_date` varchar(10) DEFAULT NULL COMMENT 'start_date',
    `end_date` varchar(10) DEFAULT NULL COMMENT 'end_date',
    `status` int(11) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.faq 구조 내보내기
CREATE TABLE IF NOT EXISTS `faq` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `title` varchar(200) NOT NULL,
    `description` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `status` int(11) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.guide 구조 내보내기
CREATE TABLE IF NOT EXISTS `guide` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `title` varchar(200) NOT NULL,
    `description` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `status` int(11) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.hosting_field 구조 내보내기
CREATE TABLE IF NOT EXISTS `hosting_field` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `code` varchar(50) NOT NULL,
    `name` varchar(50) NOT NULL,
    `manager` varchar(50) DEFAULT NULL,
    `tel` varchar(50) DEFAULT NULL,
    `email` varchar(255) DEFAULT NULL,
    `memo` varchar(255) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    `url` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.isp_field 구조 내보내기
CREATE TABLE IF NOT EXISTS `isp_field` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `code` varchar(50) NOT NULL,
    `name` varchar(50) NOT NULL,
    `manager` varchar(50) DEFAULT NULL,
    `tel` varchar(50) DEFAULT NULL,
    `email` varchar(255) DEFAULT NULL,
    `memo` varchar(255) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    `url` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.issue 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `issue_status_id` bigint(20) DEFAULT NULL,
@@ -81,7 +238,7 @@
    `priority_id` bigint(20) DEFAULT NULL,
    `severity_id` bigint(20) DEFAULT NULL,
    `title` varchar(300) DEFAULT NULL,
    `description` mediumtext COMMENT 'description',
    `description` mediumtext DEFAULT NULL COMMENT 'description',
    `reverse_index` bigint(20) DEFAULT NULL,
    `issue_number` bigint(20) DEFAULT NULL,
    `start_date` varchar(20) DEFAULT NULL,
@@ -90,17 +247,40 @@
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    `workflow_status_id` bigint(20) DEFAULT NULL,
    `parent_issue_id` bigint(11) DEFAULT NULL,
    `is_api` varchar(1) NOT NULL DEFAULT 'N',
    PRIMARY KEY (`id`),
    KEY `projectIdIndex` (`project_id`),
    KEY `reverseIndex` (`reverse_index`),
    KEY `issueTypeIdIndex` (`issue_type_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue` ENABLE KEYS */;
-- 테이블 dev_db.issue_api_default 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_api_default` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(11) NOT NULL,
    `issue_type_id` bigint(11) NOT NULL,
    `issue_status_id` bigint(20) DEFAULT NULL,
    `project_id` bigint(20) DEFAULT NULL,
    `priority_id` bigint(20) DEFAULT NULL,
    `severity_id` bigint(20) DEFAULT NULL,
    `title` varchar(300) DEFAULT NULL,
    `description` mediumtext DEFAULT NULL COMMENT 'description',
    `reverse_index` bigint(20) DEFAULT NULL,
    `issue_number` bigint(20) DEFAULT NULL,
    `start_date` varchar(20) DEFAULT NULL,
    `complete_date` varchar(20) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `userIdIndex` (`user_id`) USING BTREE,
    KEY `issueTypeIdIndex` (`issue_type_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue_comment 구조 내보내기
-- 테이블 dev_db.issue_comment 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_comment` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `issue_id` bigint(20) NOT NULL COMMENT 'issue_id',
@@ -115,11 +295,26 @@
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='issue_comment';
-- 테이블 데이터 owl_en_1.5.issue_comment:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_comment` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_comment` ENABLE KEYS */;
-- 테이블 dev_db.issue_company 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_company` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `issue_id` bigint(20) NOT NULL,
    `company_id` bigint(20) DEFAULT NULL,
    `name` varchar(50) DEFAULT NULL,
    `manager` varchar(50) DEFAULT NULL,
    `tel` varchar(50) DEFAULT NULL,
    `email` varchar(255) DEFAULT NULL,
    `memo` varchar(255) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    `url` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `companyIdIndex` (`company_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue_custom_field_value 구조 내보내기
-- 테이블 dev_db.issue_custom_field_value 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_custom_field_value` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `issue_id` bigint(20) NOT NULL,
@@ -128,25 +323,38 @@
    `use_value` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `customFieldIdIndex` (`custom_field_id`),
    KEY `issueTypeCustomFieldIdIndex` (`issue_type_custom_field_id`),
    KEY `issueIdIndex` (`issue_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_custom_field_value:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_custom_field_value` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_custom_field_value` ENABLE KEYS */;
-- 테이블 dev_db.issue_department 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_department` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `department_id` bigint(20) NOT NULL,
    `issue_id` bigint(20) NOT NULL,
    `workspace_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`id`),
    KEY `departmentIdAndIssueIdIndex` (`department_id`,`issue_id`),
    KEY `issueIdIndex` (`issue_id`),
    KEY `workspaceIdIndex` (`workspace_id`),
    KEY `departmentIdIndex` (`department_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue_history 구조 내보내기
-- 테이블 dev_db.issue_history 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_history` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `issue_id` bigint(20) DEFAULT NULL,
    `project_id` bigint(20) DEFAULT NULL,
    `issue_history_type` varchar(10) NOT NULL,
    `description` mediumtext,
    `description` mediumtext DEFAULT NULL,
    `register_id` bigint(20) DEFAULT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) DEFAULT NULL,
@@ -156,67 +364,123 @@
    KEY `projectIdIndex` (`project_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_history:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_history` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_history` ENABLE KEYS */;
-- 테이블 dev_db.issue_hosting 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_hosting` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `issue_id` bigint(20) NOT NULL,
    `hosting_id` bigint(20) DEFAULT NULL,
    `name` varchar(50) DEFAULT NULL,
    `code` varchar(50) DEFAULT NULL,
    `manager` varchar(50) DEFAULT NULL,
    `tel` varchar(50) DEFAULT NULL,
    `email` varchar(255) DEFAULT NULL,
    `memo` varchar(255) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    `url` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `hostingIdIndex` (`hosting_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue_number_generator 구조 내보내기
-- 테이블 dev_db.issue_isp 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_isp` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `issue_id` bigint(20) NOT NULL,
    `isp_id` bigint(20) DEFAULT NULL,
    `name` varchar(50) DEFAULT NULL,
    `code` varchar(50) DEFAULT NULL,
    `manager` varchar(50) DEFAULT NULL,
    `tel` varchar(50) DEFAULT NULL,
    `email` varchar(255) DEFAULT NULL,
    `memo` varchar(255) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    `url` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `ispIdIndex` (`isp_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.issue_number_generator 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_number_generator` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_id` bigint(20) NOT NULL,
    `number` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `projectIdIndex` (`project_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_number_generator:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_number_generator` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_number_generator` ENABLE KEYS */;
-- 테이블 dev_db.issue_relation 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_relation` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `issue_id` bigint(20) NOT NULL,
    `relation_issue_id` bigint(20) NOT NULL DEFAULT -1,
    `relation_issue_type` int(20) NOT NULL,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    PRIMARY KEY (`id`) USING BTREE,
    KEY `issueId` (`issue_id`) USING BTREE,
    KEY `relationIssueId` (`relation_issue_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue_risk 구조 내보내기
-- 테이블 dev_db.issue_reservation 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_reservation` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `issue_id` bigint(20) DEFAULT NULL,
    `workspace_id` bigint(20) DEFAULT NULL,
    `reservation` varchar(10) DEFAULT NULL,
    `issue_reservation_type` varchar(10) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `workspaceIdIndex` (`workspace_id`),
    KEY `issueIdIndex` (`issue_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.issue_risk 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_risk` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `issue_id` bigint(20) NOT NULL,
    `workspace_id` bigint(20) NOT NULL,
    `change_assignee_count` bigint(20) NOT NULL DEFAULT '0',
    `change_issue_status_count` bigint(20) NOT NULL DEFAULT '0',
    `change_assignee_count` bigint(20) NOT NULL DEFAULT 0,
    `change_issue_status_count` bigint(20) NOT NULL DEFAULT 0,
    `issue_status_ids` text NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `modify_date` timestamp NULL DEFAULT NULL,
    `change_department_count` bigint(20) NOT NULL DEFAULT 0,
    PRIMARY KEY (`id`),
    KEY `issueIdIndex` (`issue_id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_risk:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_risk` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_risk` ENABLE KEYS */;
-- 테이블 owl_en_1.5.issue_search 구조 내보내기
-- 테이블 dev_db.issue_search 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_search` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
    `user_id` bigint(20) NOT NULL,
    `conditions` mediumtext,
    `conditions` mediumtext DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `workspaceIdAndUserIdIndex` (`workspace_id`,`user_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_search:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_search` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_search` ENABLE KEYS */;
-- 테이블 owl_en_1.5.issue_status 구조 내보내기
-- 테이블 dev_db.issue_status 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_status` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) DEFAULT NULL,
@@ -233,30 +497,25 @@
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_status:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_status` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_status` ENABLE KEYS */;
-- 테이블 owl_en_1.5.issue_table_config 구조 내보내기
-- 테이블 dev_db.issue_table_config 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_table_config` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
    `user_id` bigint(20) NOT NULL,
    `issue_table_configs` mediumtext CHARACTER SET utf8 NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    `issue_type_id` bigint(20) NOT NULL,
    `issue_table_type` int(11) NOT NULL,
    PRIMARY KEY (`id`),
    KEY `workspaceIdAndUserIdIndex` (`workspace_id`,`user_id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    KEY `workspaceIdIndex` (`workspace_id`),
    KEY `issueTableTypeIndex` (`issue_table_type`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_table_config:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_table_config` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_table_config` ENABLE KEYS */;
-- 테이블 owl_en_1.5.issue_type 구조 내보내기
-- 테이블 dev_db.issue_type 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_type` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
@@ -264,31 +523,47 @@
    `name` varchar(15) NOT NULL,
    `description` mediumtext NOT NULL,
    `color` varchar(255) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `project_id` bigint(11) DEFAULT NULL,
    `use_partner` bigint(11) NOT NULL DEFAULT 0,
    PRIMARY KEY (`id`),
    KEY `workspaceIdIndex` (`workspace_id`),
    KEY `workflowIdIndex` (`workflow_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_type:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_type` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_type` ENABLE KEYS */;
-- 테이블 dev_db.issue_type_api_end_status 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_type_api_end_status` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(20) DEFAULT NULL,
    `project_id` bigint(20) DEFAULT NULL,
    `issue_type_id` bigint(20) DEFAULT NULL,
    `issue_status_id` bigint(20) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    PRIMARY KEY (`id`),
    KEY `userIdIndex` (`user_id`),
    KEY `projectIdIndex` (`project_id`),
    KEY `issueTypeIdIndex` (`issue_type_id`),
    KEY `issueStatusIdIndex` (`issue_status_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue_type_custom_field 구조 내보내기
-- 테이블 dev_db.issue_type_custom_field 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_type_custom_field` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_id` bigint(20) NOT NULL,
    `issue_type_id` bigint(20) NOT NULL,
    `custom_field_id` bigint(20) NOT NULL,
    `field_option` varchar(10) NOT NULL,
    `position` bigint(20) NOT NULL DEFAULT '0',
    `position` bigint(20) NOT NULL DEFAULT 0,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `projectIdIndex` (`project_id`),
    KEY `issueTypeIdIndex` (`issue_type_id`),
@@ -296,20 +571,16 @@
    KEY `projectIdAndIssueTypeIdIndex` (`project_id`,`issue_type_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_type_custom_field:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_type_custom_field` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_type_custom_field` ENABLE KEYS */;
-- 테이블 owl_en_1.5.issue_user 구조 내보내기
-- 테이블 dev_db.issue_user 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_user` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(20) NULL,
    `user_id` bigint(20) DEFAULT NULL,
    `issue_id` bigint(20) NOT NULL,
    `workspace_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `userIdAndIssueIdIndex` (`user_id`,`issue_id`),
    KEY `issueIdIndex` (`issue_id`),
@@ -317,35 +588,14 @@
    KEY `userIdIndex` (`user_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.issue_department 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_department` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `department_id` bigint(20) NOT NULL,
    `issue_id` bigint(20) NOT NULL,
    `workspace_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`id`),
    KEY `departmentIdAndIssueIdIndex` (`department_id`,`issue_id`),
    KEY `issueIdIndex` (`issue_id`),
    KEY `workspaceIdIndex` (`workspace_id`),
    KEY `departmentIdIndex` (`department_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_user:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_user` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_user` ENABLE KEYS */;
-- 테이블 owl_en_1.5.issue_version_control 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_version_control` (
-- 테이블 dev_db.issue_version 구조 내보내기
CREATE TABLE IF NOT EXISTS `issue_version` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) DEFAULT NULL,
    `project_id` bigint(20) DEFAULT NULL,
    `issue_id` bigint(20) DEFAULT NULL,
    `version` bigint(20) DEFAULT NULL,
    `content` mediumtext,
    `content` mediumtext DEFAULT NULL,
    `register_id` bigint(20) DEFAULT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) DEFAULT NULL,
@@ -356,25 +606,19 @@
    KEY `projectIdIndex` (`project_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.issue_version_control:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `issue_version_control` DISABLE KEYS */;
/*!40000 ALTER TABLE `issue_version_control` ENABLE KEYS */;
-- 테이블 owl_en_1.5.login_history 구조 내보내기
CREATE TABLE IF NOT EXISTS `login_history` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `user_id` bigint(20) NOT NULL COMMENT 'user_id',
    `login_date` timestamp NULL DEFAULT NULL COMMENT 'login_date',
    `logout_date` timestamp NULL DEFAULT NULL COMMENT 'logout_date',
    `login_ip` varchar(20) NOT NULL COMMENT 'login_ip',
-- 테이블 dev_db.notice 구조 내보내기
CREATE TABLE IF NOT EXISTS `notice` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `title` varchar(200) NOT NULL,
    `description` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='login_history';
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.login_history:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `login_history` DISABLE KEYS */;
/*!40000 ALTER TABLE `login_history` ENABLE KEYS */;
-- 테이블 owl_en_1.5.payment 구조 내보내기
-- 테이블 dev_db.payment 구조 내보내기
CREATE TABLE IF NOT EXISTS `payment` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) DEFAULT NULL,
@@ -389,11 +633,7 @@
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.payment:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `payment` DISABLE KEYS */;
/*!40000 ALTER TABLE `payment` ENABLE KEYS */;
-- 테이블 owl_en_1.5.payment_history 구조 내보내기
-- 테이블 dev_db.payment_history 구조 내보내기
CREATE TABLE IF NOT EXISTS `payment_history` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
@@ -404,19 +644,15 @@
    `merchant_uid` varchar(255) NOT NULL,
    `payment_result` varchar(10) NOT NULL,
    `payment_response` mediumtext NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    PRIMARY KEY (`id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.payment_history:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `payment_history` DISABLE KEYS */;
/*!40000 ALTER TABLE `payment_history` ENABLE KEYS */;
-- 테이블 owl_en_1.5.permission 구조 내보내기
-- 테이블 dev_db.permission 구조 내보내기
CREATE TABLE IF NOT EXISTS `permission` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `name` varchar(50) NOT NULL,
@@ -427,7 +663,7 @@
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4;
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.permission:~12 rows (대략적) 내보내기
/*!40000 ALTER TABLE `permission` DISABLE KEYS */;
@@ -443,7 +679,8 @@
(9, '이슈 상태 통합 권한', 'ISSUE_STATUS_TOTAL', '01', 1, '2018-05-03 15:06:31', 1, '2018-05-03 15:06:32'),
(10, '워크플로우 통합 권한', 'WORKFLOW_TOTAL', '01', 1, '2018-05-03 15:07:09', 1, '2018-05-03 15:07:10'),
(11, '이슈 유형 통합 권한', 'ISSUE_TYPE_TOTAL', '01', 1, '2018-05-03 15:07:35', 1, '2018-05-03 15:07:36'),
(12, '사용자 정의 필드 통합 권한', 'CUSTOM_FIELD_TOTAL', '01', 1, '2018-05-03 15:07:55', 1, '2018-05-03 15:07:56');
(12, '사용자 정의 필드 통합 권한', 'CUSTOM_FIELD_TOTAL', '01', 1, '2018-05-03 15:07:55', 1, '2018-05-03 15:07:56'),
(13, '공지사항 조회 권한', 'NOTICE_READ', '01', 1, '2018-05-03 15:07:55', 1, '2018-05-03 15:07:56');
/*!40000 ALTER TABLE `permission` ENABLE KEYS */;
-- 테이블 owl_en_1.5.priority 구조 내보내기
@@ -460,18 +697,14 @@
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.priority:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `priority` DISABLE KEYS */;
/*!40000 ALTER TABLE `priority` ENABLE KEYS */;
-- 테이블 owl_en_1.5.project 구조 내보내기
-- 테이블 dev_db.project 구조 내보내기
CREATE TABLE IF NOT EXISTS `project` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `workspace_id` bigint(20) NOT NULL DEFAULT '0',
    `workspace_id` bigint(20) NOT NULL DEFAULT 0,
    `name` varchar(50) NOT NULL COMMENT 'name',
    `project_key` varchar(10) NOT NULL,
    `project_type` varchar(50) NOT NULL,
    `description` mediumtext COMMENT 'description',
    `description` mediumtext DEFAULT NULL COMMENT 'description',
    `status` varchar(2) NOT NULL DEFAULT '01' COMMENT '01:활성, 02:비활성',
    `start_date` varchar(10) DEFAULT NULL COMMENT 'start_date',
    `end_date` varchar(10) DEFAULT NULL COMMENT 'end_date',
@@ -484,95 +717,103 @@
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='project';
-- 테이블 데이터 owl_en_1.5.project:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `project` DISABLE KEYS */;
/*!40000 ALTER TABLE `project` ENABLE KEYS */;
-- 테이블 dev_db.project_closure 구조 내보내기
CREATE TABLE IF NOT EXISTS `project_closure` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_id` bigint(20) NOT NULL,
    `parent_project_id` bigint(20) NOT NULL DEFAULT -1,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    PRIMARY KEY (`id`) USING BTREE,
    KEY `projectIdIndex` (`project_id`) USING BTREE,
    KEY `parentProjectIdIndex` (`parent_project_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.project_role 구조 내보내기
-- 테이블 dev_db.project_role 구조 내보내기
CREATE TABLE IF NOT EXISTS `project_role` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_id` bigint(20) NOT NULL,
    `name` varchar(50) NOT NULL,
    `role_type` varchar(2) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `projectIdIndex` (`project_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.project_role:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `project_role` DISABLE KEYS */;
/*!40000 ALTER TABLE `project_role` ENABLE KEYS */;
-- 테이블 dev_db.project_role_department 구조 내보내기
CREATE TABLE IF NOT EXISTS `project_role_department` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_role_id` bigint(20) NOT NULL,
    `department_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`id`),
    KEY `projectRoleIdAndDepartmentIdIndex` (`project_role_id`,`department_id`),
    KEY `departmentIdIndex` (`department_id`),
    KEY `projectRoleIdIndex` (`project_role_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.project_role_permission 구조 내보내기
-- 테이블 dev_db.project_role_permission 구조 내보내기
CREATE TABLE IF NOT EXISTS `project_role_permission` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_role_id` bigint(20) NOT NULL,
    `permission_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `projectRoleIdIndex` (`project_role_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.project_role_permission:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `project_role_permission` DISABLE KEYS */;
/*!40000 ALTER TABLE `project_role_permission` ENABLE KEYS */;
-- 테이블 owl_en_1.5.project_role_user 구조 내보내기
-- 테이블 dev_db.project_role_user 구조 내보내기
CREATE TABLE IF NOT EXISTS `project_role_user` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_role_id` bigint(20) NOT NULL,
    `user_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `projectRoleIdAndUserIdIndex` (`project_role_id`,`user_id`),
    KEY `userIdIndex` (`user_id`),
    KEY `projectRoleIdIndex` (`project_role_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.project_role_department 구조 내보내기
CREATE TABLE IF NOT EXISTS `project_role_department` (
-- 테이블 dev_db.qna 구조 내보내기
CREATE TABLE IF NOT EXISTS `qna` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_role_id` bigint(20) NOT NULL,
    `department_id` bigint(20) NOT NULL,
    `title` varchar(200) NOT NULL,
    `description` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`id`),
    KEY `projectRoleIdAndDepartmentIdIndex` (`project_role_id`,`department_id`),
    KEY `departmentIdIndex` (`department_id`),
    KEY `projectRoleIdIndex` (`project_role_id`)
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.project_role_department 구조 내보내기
CREATE TABLE IF NOT EXISTS `project_role_department` (
-- 테이블 dev_db.qna_answer 구조 내보내기
CREATE TABLE IF NOT EXISTS `qna_answer` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `project_role_id` bigint(20) NOT NULL,
    `department_id` bigint(20) NULL,
    `ask_id` bigint(20) NOT NULL,
    `title` varchar(200) NOT NULL,
    `description` mediumtext NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    PRIMARY KEY (`id`),
    KEY `projectRoleIdAndDepartmentIdIndex` (`project_role_id`,`department_id`),
    KEY `departmentIdIndex` (`department_id`),
    KEY `projectRoleIdIndex` (`project_role_id`)
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.project_role_user:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `project_role_user` DISABLE KEYS */;
/*!40000 ALTER TABLE `project_role_user` ENABLE KEYS */;
-- 테이블 owl_en_1.5.reservation_disable_user 구조 내보내기
-- 테이블 dev_db.reservation_disable_user 구조 내보내기
CREATE TABLE IF NOT EXISTS `reservation_disable_user` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `payment_id` bigint(20) DEFAULT NULL,
@@ -585,29 +826,37 @@
    KEY `paymentIdIndex` (`payment_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.reservation_disable_user:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `reservation_disable_user` DISABLE KEYS */;
/*!40000 ALTER TABLE `reservation_disable_user` ENABLE KEYS */;
-- 테이블 dev_db.schema_version 구조 내보내기
CREATE TABLE IF NOT EXISTS `schema_version` (
    `installed_rank` int(11) NOT NULL,
    `version` varchar(50) DEFAULT NULL,
    `description` varchar(200) NOT NULL,
    `type` varchar(20) NOT NULL,
    `script` varchar(1000) NOT NULL,
    `checksum` int(11) DEFAULT NULL,
    `installed_by` varchar(100) NOT NULL,
    `installed_on` timestamp NOT NULL DEFAULT current_timestamp(),
    `execution_time` int(11) NOT NULL,
    `success` tinyint(1) NOT NULL,
    PRIMARY KEY (`installed_rank`),
    KEY `schema_version_s_idx` (`success`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 테이블 owl_en_1.5.severity 구조 내보내기
-- 테이블 dev_db.severity 구조 내보내기
CREATE TABLE IF NOT EXISTS `severity` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
    `name` varchar(50) NOT NULL,
    `position` bigint(20) NOT NULL,
    `color` varchar(255) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.severity:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `severity` DISABLE KEYS */;
/*!40000 ALTER TABLE `severity` ENABLE KEYS */;
-- 테이블 owl_en_1.5.system_email 구조 내보내기
-- 테이블 dev_db.system_email 구조 내보내기
CREATE TABLE IF NOT EXISTS `system_email` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `send_address` varchar(50) NOT NULL,
@@ -616,16 +865,12 @@
    `send_yn` varchar(2) NOT NULL DEFAULT 'N',
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.system_email:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `system_email` DISABLE KEYS */;
/*!40000 ALTER TABLE `system_email` ENABLE KEYS */;
-- 테이블 owl_en_1.5.system_role 구조 내보내기
-- 테이블 dev_db.system_role 구조 내보내기
CREATE TABLE IF NOT EXISTS `system_role` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `name` varchar(50) NOT NULL,
@@ -635,13 +880,15 @@
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.system_role:~2 rows (대략적) 내보내기
/*!40000 ALTER TABLE `system_role` DISABLE KEYS */;
INSERT INTO `system_role` (`id`, `name`, `role_type`, `register_id`, `register_date`, `modify_id`, `modify_date`) VALUES
(1, '일반 사용자 역할', '01', 1, '2017-12-29 21:37:15', 1, '2017-12-29 21:37:16'),
(2, '워크스페이스 관리자 역할', '02', 1, '2017-12-29 21:37:27', 1, '2017-12-29 21:37:28');
(2, '워크스페이스 관리자 역할', '02', 1, '2017-12-29 21:37:27', 1, '2017-12-29 21:37:28'),
(3, '프로젝트 사용자 역할', '03', 1, '2017-12-29 21:37:15', 1, '2017-12-29 21:37:15'),
(4, '프로젝트 관리자 역할', '04', 1, '2017-12-29 21:37:15', 1, '2017-12-29 21:37:15');
/*!40000 ALTER TABLE `system_role` ENABLE KEYS */;
-- 테이블 owl_en_1.5.system_role_permission 구조 내보내기
@@ -654,7 +901,7 @@
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4;
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.system_role_permission:~18 rows (대략적) 내보내기
/*!40000 ALTER TABLE `system_role_permission` DISABLE KEYS */;
@@ -676,7 +923,9 @@
(15, 2, 9, 1, '2018-05-08 15:52:13', 1, '2018-05-08 15:52:14'),
(16, 2, 10, 1, '2018-05-08 15:52:20', 1, '2018-05-08 15:52:21'),
(17, 2, 11, 1, '2018-05-08 15:52:28', 1, '2018-05-08 15:52:28'),
(18, 2, 12, 1, '2018-05-08 15:52:35', 1, '2018-05-08 15:52:36');
(18, 2, 12, 1, '2018-05-08 15:52:35', 1, '2018-05-08 15:52:36'),
(19, 1, 13, 1, '2019-06-12 12:06:35', 1, '2019-06-12 12:06:37'),
(20, 2, 13, 1, '2019-06-12 12:06:47', 1, '2019-06-12 12:06:49');
/*!40000 ALTER TABLE `system_role_permission` ENABLE KEYS */;
-- 테이블 owl_en_1.5.system_role_user 구조 내보내기
@@ -693,11 +942,7 @@
    KEY `systemRoleidIndex` (`system_role_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.system_role_user:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `system_role_user` DISABLE KEYS */;
/*!40000 ALTER TABLE `system_role_user` ENABLE KEYS */;
-- 테이블 owl_en_1.5.user 구조 내보내기
-- 테이블 dev_db.user 구조 내보내기
CREATE TABLE IF NOT EXISTS `user` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `name` varchar(50) NOT NULL,
@@ -715,14 +960,29 @@
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
    `licensekey` varchar(255) DEFAULT NULL,
    `last_project_id` bigint(20) DEFAULT 0,
    `last_issue_type_id` bigint(20) DEFAULT 0,
    `last_login_date` timestamp NULL DEFAULT NULL,
    `level_id` bigint(11) DEFAULT NULL,
    `insert_type` varchar(1) NOT NULL DEFAULT 'N',
    PRIMARY KEY (`id`),
    KEY `levelIdIndex` (`level_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.user:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
-- 테이블 dev_db.user_department 구조 내보내기
CREATE TABLE IF NOT EXISTS `user_department` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `department_id` bigint(11) DEFAULT NULL,
    `user_id` bigint(11) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.user_invite 구조 내보내기
-- 테이블 dev_db.user_invite 구조 내보내기
CREATE TABLE IF NOT EXISTS `user_invite` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
@@ -730,35 +990,41 @@
    `status` varchar(10) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.user_invite:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `user_invite` DISABLE KEYS */;
/*!40000 ALTER TABLE `user_invite` ENABLE KEYS */;
-- 테이블 owl_en_1.5.user_invite_project 구조 내보내기
-- 테이블 dev_db.user_invite_project 구조 내보내기
CREATE TABLE IF NOT EXISTS `user_invite_project` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `user_invite_id` bigint(20) NOT NULL,
    `project_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `userInviteIdIndex` (`user_invite_id`),
    KEY `projectIdIndex` (`project_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.user_invite_project:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `user_invite_project` DISABLE KEYS */;
/*!40000 ALTER TABLE `user_invite_project` ENABLE KEYS */;
-- 테이블 dev_db.user_level 구조 내보내기
CREATE TABLE IF NOT EXISTS `user_level` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `level_name` varchar(50) NOT NULL,
    `permission` int(11) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    `default_yn` varchar(1) NOT NULL DEFAULT 'N',
    `basic_user` varchar(1) NOT NULL DEFAULT 'N',
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.user_like_issue 구조 내보내기
-- 테이블 dev_db.user_like_issue 구조 내보내기
CREATE TABLE IF NOT EXISTS `user_like_issue` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(20) NOT NULL,
@@ -766,35 +1032,27 @@
    `workspace_id` bigint(20) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `userIdIndex` (`user_id`),
    KEY `issueIdIndex` (`issue_id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.user_like_issue:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `user_like_issue` DISABLE KEYS */;
/*!40000 ALTER TABLE `user_like_issue` ENABLE KEYS */;
-- 테이블 owl_en_1.5.user_with_draw 구조 내보내기
-- 테이블 dev_db.user_with_draw 구조 내보내기
CREATE TABLE IF NOT EXISTS `user_with_draw` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `account` varchar(200) NOT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `accountIndex` (`account`(191))
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.user_with_draw:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `user_with_draw` DISABLE KEYS */;
/*!40000 ALTER TABLE `user_with_draw` ENABLE KEYS */;
-- 테이블 owl_en_1.5.user_workspace 구조 내보내기
-- 테이블 dev_db.user_workspace 구조 내보내기
CREATE TABLE IF NOT EXISTS `user_workspace` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(20) DEFAULT NULL,
@@ -802,39 +1060,64 @@
    `manager_yn` varchar(2) NOT NULL DEFAULT 'N',
    `use_yn` varchar(2) NOT NULL DEFAULT 'N',
    `disable_position` bigint(20) NOT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    PRIMARY KEY (`id`),
    KEY `userIdIndex` (`user_id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.user_workspace:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `user_workspace` DISABLE KEYS */;
/*!40000 ALTER TABLE `user_workspace` ENABLE KEYS */;
-- 테이블 owl_en_1.5.workflow 구조 내보내기
-- 테이블 dev_db.workflow 구조 내보내기
CREATE TABLE IF NOT EXISTS `workflow` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workspace_id` bigint(20) NOT NULL,
    `name` varchar(50) NOT NULL,
    `description` mediumtext,
    `description` mediumtext DEFAULT NULL,
    `project_type` varchar(50) DEFAULT NULL,
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    PRIMARY KEY (`id`),
    KEY `workspaceIdIndex` (`workspace_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.workflow:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `workflow` DISABLE KEYS */;
/*!40000 ALTER TABLE `workflow` ENABLE KEYS */;
-- 테이블 dev_db.workflow_department 구조 내보내기
CREATE TABLE IF NOT EXISTS `workflow_department` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT,
    `workflow_id` bigint(11) DEFAULT NULL,
    `issue_status_id` bigint(11) DEFAULT NULL,
    `department_id` bigint(11) DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `register_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    `modify_date` timestamp NULL DEFAULT NULL,
    PRIMARY KEY (`id`) USING BTREE,
    KEY `workflowIdIndex` (`workflow_id`) USING BTREE,
    KEY `issueStatusIdIndex` (`issue_status_id`) USING BTREE,
    KEY `departmentIdIndex` (`department_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 owl_en_1.5.workflow_transition 구조 내보내기
-- 테이블 dev_db.workflow_status 구조 내보내기
CREATE TABLE IF NOT EXISTS `workflow_status` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `project_id` bigint(20) DEFAULT NULL,
    `name` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '',
    `first_yn` varchar(1) CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    `last_yn` varchar(1) CHARACTER SET utf8 NOT NULL DEFAULT 'N',
    `progress` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '진행률',
    `color` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '0',
    `position` bigint(20) NOT NULL DEFAULT 0,
    `register_id` bigint(20) NOT NULL COMMENT 'register_id',
    `register_date` timestamp NULL DEFAULT NULL COMMENT 'register_date',
    `modify_id` bigint(20) NOT NULL COMMENT 'modify_id',
    `modify_date` timestamp NULL DEFAULT NULL COMMENT 'modify_date',
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 dev_db.workflow_transition 구조 내보내기
CREATE TABLE IF NOT EXISTS `workflow_transition` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `workflow_id` bigint(20) NOT NULL,
@@ -847,9 +1130,9 @@
    `correct_x` bigint(20) DEFAULT NULL,
    `correct_y` bigint(20) DEFAULT NULL,
    `direct` varchar(2) NOT NULL DEFAULT 'N',
    `register_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `register_date` timestamp NULL DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    PRIMARY KEY (`id`),
    KEY `workflowIdIndex` (`workflow_id`),
@@ -857,31 +1140,23 @@
    KEY `targetIssueStatusIdIndex` (`target_issue_status_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.workflow_transition:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `workflow_transition` DISABLE KEYS */;
/*!40000 ALTER TABLE `workflow_transition` ENABLE KEYS */;
-- 테이블 owl_en_1.5.workspace 구조 내보내기
-- 테이블 dev_db.workspace 구조 내보내기
CREATE TABLE IF NOT EXISTS `workspace` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) NOT NULL,
    `max_user` bigint(20) NOT NULL,
    `start_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `expire_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `start_date` timestamp NULL DEFAULT NULL,
    `expire_date` timestamp NULL DEFAULT NULL,
    `storage_size` bigint(20) NOT NULL,
    `use_traffic` bigint(20) DEFAULT NULL,
    `service_type` varchar(10) DEFAULT NULL,
    `register_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `register_date` timestamp NULL DEFAULT NULL,
    `register_id` bigint(20) NOT NULL,
    `modify_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
    `modify_date` timestamp NULL DEFAULT NULL,
    `modify_id` bigint(20) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 테이블 데이터 owl_en_1.5.workspace:~0 rows (대략적) 내보내기
/*!40000 ALTER TABLE `workspace` DISABLE KEYS */;
/*!40000 ALTER TABLE `workspace` ENABLE KEYS */;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
src/main/resources/migration/V1_2__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_2__insert_default_data.sql
New file
@@ -0,0 +1,143 @@
-- --------------------------------------------------------
-- 호스트:                          127.0.0.1
-- 서버 버전:                        10.5.8-MariaDB - mariadb.org binary distribution
-- 서버 OS:                        Win64
-- HeidiSQL 버전:                  11.0.0.5919
-- --------------------------------------------------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-- 테이블 데이터 prod_db.custom_field:~7 rows (대략적) 내보내기
DELETE FROM `custom_field`;
/*!40000 ALTER TABLE `custom_field` DISABLE KEYS */;
INSERT INTO `custom_field` (`id`, `workspace_id`, `name`, `custom_field_type`, `default_value`, `register_id`, `modify_id`, `register_date`, `modify_date`, `use_flag`, `required_data`) VALUES
(1, 1, '탐지일시', 'DATETIME', '', 1, 1, '2021-12-03 15:45:42', '2021-12-03 15:45:42', 'Y', 'N'),
(2, 1, '경유지', 'SITE', '', 1, 1, '2021-12-03 15:45:48', '2021-12-03 20:49:11', 'Y', 'N'),
(3, 1, '국가', 'SINGLE_SELECT', '', 1, 1, '2021-12-03 15:47:05', '2021-12-03 15:47:05', 'Y', 'N'),
(4, 1, '도메인', 'SITE', '', 1, 1, '2021-12-03 20:49:40', '2021-12-03 20:49:40', 'Y', 'N'),
(5, 1, '유포지', 'IP_ADDRESS', '', 1, 1, '2021-12-06 09:03:18', '2021-12-06 09:16:50', 'Y', 'N'),
(6, 1, '탐지패턴', 'INPUT', '', 1, 1, '2021-12-06 10:10:12', '2021-12-06 10:10:12', 'Y', 'N'),
(7, 1, 'IP정보', 'IP_ADDRESS', '', 1, 1, '2021-12-14 13:19:22', '2021-12-14 13:19:22', 'Y', 'N');
/*!40000 ALTER TABLE `custom_field` ENABLE KEYS */;
-- 테이블 데이터 prod_db.issue_status:~22 rows (대략적) 내보내기
DELETE FROM `issue_status`;
/*!40000 ALTER TABLE `issue_status` DISABLE KEYS */;
INSERT INTO `issue_status` (`id`, `workspace_id`, `issue_status_type`, `name`, `default_yn`, `color`, `position`, `register_id`, `register_date`, `modify_id`, `modify_date`) VALUES
(1, 1, 'READY', '생성', 'Y', '#665fff', 1, 1, '2021-12-03 15:43:32', 1, '2021-12-03 15:43:32'),
(2, 1, 'OPEN', '진행', 'Y', '#98c220', 2, 1, '2021-12-03 15:43:32', 1, '2021-12-03 15:43:32'),
(3, 1, 'OPEN', '재진행', 'Y', '#c940ea', 3, 1, '2021-12-03 15:43:32', 1, '2021-12-03 15:43:32'),
(4, 1, 'OPEN', '확인', 'Y', '#febd35', 4, 1, '2021-12-03 15:43:32', 1, '2021-12-03 15:43:32'),
(5, 1, 'CLOSE', '종료', 'Y', '#888888', 5, 1, '2021-12-03 15:43:32', 1, '2021-12-03 15:43:32'),
(6, 1, 'CLOSE', '승인 불가', 'Y', '#888888', 6, 1, '2021-12-03 15:43:32', 1, '2021-12-06 11:38:20'),
(7, 1, 'CLOSE', '승인', 'Y', '#888888', 7, 1, '2021-12-03 15:43:32', 1, '2021-12-06 11:38:25'),
(8, 1, 'READY', '탐지', 'N', '#febd35', 0, 1, '2021-12-03 20:22:13', 1, '2021-12-03 20:22:13'),
(9, 1, 'OPEN', '1차 조치 완료', 'N', '#febd35', 0, 1, '2021-12-03 20:43:05', 1, '2021-12-03 20:43:05'),
(10, 1, 'OPEN', '2차 조치 완료', 'N', '#febd35', 0, 1, '2021-12-03 20:43:15', 1, '2021-12-03 20:43:15'),
(11, 1, 'OPEN', '3차 조치 완료', 'N', '#febd35', 0, 1, '2021-12-03 20:43:20', 1, '2021-12-03 20:43:20'),
(12, 1, 'OPEN', '공문 발송 완료', 'N', '#febd35', 0, 1, '2021-12-03 20:43:34', 1, '2021-12-03 20:43:34'),
(13, 1, 'CLOSE', '조치 완료', 'N', '#888888', 0, 1, '2021-12-03 20:43:46', 1, '2021-12-06 11:38:06'),
(14, 1, 'CLOSE', '완전비협조', 'N', '#888888', 0, 1, '2021-12-03 20:44:00', 1, '2021-12-06 11:36:53'),
(15, 1, 'OPEN', '차단검토요청', 'N', '#febd35', 0, 1, '2021-12-06 09:32:03', 1, '2021-12-06 09:32:03'),
(16, 1, 'OPEN', '차단확인요청', 'N', '#febd35', 0, 1, '2021-12-06 09:32:09', 1, '2021-12-06 09:32:09'),
(17, 1, 'CLOSE', '차단완료', 'N', '#888888', 0, 1, '2021-12-06 09:32:27', 1, '2021-12-06 11:38:12'),
(18, 1, 'OPEN', '조치요청', 'N', '#febd35', 0, 1, '2021-12-06 09:32:32', 1, '2021-12-06 09:32:32'),
(19, 1, 'OPEN', '조치확인요청', 'N', '#febd35', 0, 1, '2021-12-06 09:32:39', 1, '2021-12-06 09:32:39'),
(21, 1, 'OPEN', '분석 요청', 'N', '#febd35', 0, 1, '2021-12-06 09:51:11', 1, '2021-12-06 09:51:11'),
(22, 1, 'CLOSE', '접속 불가', 'N', '#888888', 0, 1, '2021-12-06 09:54:38', 1, '2021-12-06 11:37:04');
/*!40000 ALTER TABLE `issue_status` ENABLE KEYS */;
-- 테이블 데이터 prod_db.workflow:~4 rows (대략적) 내보내기
DELETE FROM `workflow`;
/*!40000 ALTER TABLE `workflow` DISABLE KEYS */;
INSERT INTO `workflow` (`id`, `workspace_id`, `name`, `description`, `project_type`, `register_date`, `register_id`, `modify_date`, `modify_id`) VALUES
(4, 1, '경유지 대응 워크플로우', NULL, NULL, '2021-12-03 20:48:19', 1, '2021-12-03 20:48:19', 1),
(5, 1, '유포지 대응 워크플로우', NULL, NULL, '2021-12-06 09:41:02', 1, '2021-12-06 09:41:02', 1),
(6, 1, '분석결과대응 워크플로우', NULL, NULL, '2021-12-06 09:47:20', 1, '2021-12-06 09:47:20', 1),
(7, 1, '악성도메인 워크플로우', NULL, NULL, '2021-12-06 09:58:20', 1, '2021-12-06 09:58:20', 1);
/*!40000 ALTER TABLE `workflow` ENABLE KEYS */;
-- 테이블 데이터 prod_db.workflow_status:~35 rows (대략적) 내보내기
DELETE FROM `workflow_status`;
/*!40000 ALTER TABLE `workflow_status` DISABLE KEYS */;
INSERT INTO `workflow_status` (`id`, `project_id`, `name`, `first_yn`, `last_yn`, `progress`, `color`, `position`, `register_id`, `register_date`, `modify_id`, `modify_date`) VALUES
(1, 1, '오픈', 'Y', 'N', 0, '#047bf8', 0, 1, '2021-12-03 15:49:46', 1, '2021-12-03 15:49:46'),
(2, 1, '할당', 'N', 'N', 20, '#e65252', 1, 1, '2021-12-03 15:49:46', 1, '2021-12-03 15:49:46'),
(3, 1, '해결', 'N', 'N', 50, '#5bc0de', 2, 1, '2021-12-03 15:49:46', 1, '2021-12-03 15:49:46'),
(4, 1, '확인', 'N', 'N', 70, '#5eb314', 3, 1, '2021-12-03 15:49:46', 1, '2021-12-03 15:49:46'),
(5, 1, '종료', 'N', 'Y', 100, '#b17247', 4, 1, '2021-12-03 15:49:46', 1, '2021-12-03 15:49:46'),
(6, 2, '오픈', 'Y', 'N', 0, '#047bf8', 0, 1, '2021-12-03 15:52:05', 1, '2021-12-03 15:52:05'),
(7, 2, '할당', 'N', 'N', 20, '#e65252', 1, 1, '2021-12-03 15:52:05', 1, '2021-12-03 15:52:05'),
(8, 2, '해결', 'N', 'N', 50, '#5bc0de', 2, 1, '2021-12-03 15:52:05', 1, '2021-12-03 15:52:05'),
(9, 2, '확인', 'N', 'N', 70, '#5eb314', 3, 1, '2021-12-03 15:52:05', 1, '2021-12-03 15:52:05'),
(10, 2, '종료', 'N', 'Y', 100, '#b17247', 4, 1, '2021-12-03 15:52:05', 1, '2021-12-03 15:52:05'),
(11, 3, '오픈', 'Y', 'N', 0, '#047bf8', 0, 9, '2021-12-14 19:17:39', 9, '2021-12-14 19:17:39'),
(12, 3, '할당', 'N', 'N', 20, '#e65252', 1, 9, '2021-12-14 19:17:39', 9, '2021-12-14 19:17:39'),
(13, 3, '해결', 'N', 'N', 50, '#5bc0de', 2, 9, '2021-12-14 19:17:39', 9, '2021-12-14 19:17:39'),
(14, 3, '확인', 'N', 'N', 70, '#5eb314', 3, 9, '2021-12-14 19:17:39', 9, '2021-12-14 19:17:39'),
(15, 3, '종료', 'N', 'Y', 100, '#b17247', 4, 9, '2021-12-14 19:17:39', 9, '2021-12-14 19:17:39'),
(16, 4, '오픈', 'Y', 'N', 0, '#047bf8', 0, 9, '2021-12-14 19:19:54', 9, '2021-12-14 19:19:54'),
(17, 4, '할당', 'N', 'N', 20, '#e65252', 1, 9, '2021-12-14 19:19:54', 9, '2021-12-14 19:19:54'),
(18, 4, '해결', 'N', 'N', 50, '#5bc0de', 2, 9, '2021-12-14 19:19:54', 9, '2021-12-14 19:19:54'),
(19, 4, '확인', 'N', 'N', 70, '#5eb314', 3, 9, '2021-12-14 19:19:54', 9, '2021-12-14 19:19:54'),
(20, 4, '종료', 'N', 'Y', 100, '#b17247', 4, 9, '2021-12-14 19:19:54', 9, '2021-12-14 19:19:54'),
(21, 5, '오픈', 'Y', 'N', 0, '#047bf8', 0, 9, '2021-12-14 19:25:10', 9, '2021-12-14 19:25:10'),
(22, 5, '할당', 'N', 'N', 20, '#e65252', 1, 9, '2021-12-14 19:25:10', 9, '2021-12-14 19:25:10'),
(23, 5, '해결', 'N', 'N', 50, '#5bc0de', 2, 9, '2021-12-14 19:25:10', 9, '2021-12-14 19:25:10'),
(24, 5, '확인', 'N', 'N', 70, '#5eb314', 3, 9, '2021-12-14 19:25:10', 9, '2021-12-14 19:25:10'),
(25, 5, '종료', 'N', 'Y', 100, '#b17247', 4, 9, '2021-12-14 19:25:10', 9, '2021-12-14 19:25:10'),
(26, 6, '오픈', 'Y', 'N', 0, '#047bf8', 0, 9, '2021-12-14 19:25:18', 9, '2021-12-14 19:25:18'),
(27, 6, '할당', 'N', 'N', 20, '#e65252', 1, 9, '2021-12-14 19:25:18', 9, '2021-12-14 19:25:18'),
(28, 6, '해결', 'N', 'N', 50, '#5bc0de', 2, 9, '2021-12-14 19:25:18', 9, '2021-12-14 19:25:18'),
(29, 6, '확인', 'N', 'N', 70, '#5eb314', 3, 9, '2021-12-14 19:25:18', 9, '2021-12-14 19:25:18'),
(30, 6, '종료', 'N', 'Y', 100, '#b17247', 4, 9, '2021-12-14 19:25:18', 9, '2021-12-14 19:25:18'),
(31, 7, '오픈', 'Y', 'N', 0, '#047bf8', 0, 9, '2021-12-14 19:25:37', 9, '2021-12-14 19:25:37'),
(32, 7, '할당', 'N', 'N', 20, '#e65252', 1, 9, '2021-12-14 19:25:37', 9, '2021-12-14 19:25:37'),
(33, 7, '해결', 'N', 'N', 50, '#5bc0de', 2, 9, '2021-12-14 19:25:37', 9, '2021-12-14 19:25:37'),
(34, 7, '확인', 'N', 'N', 70, '#5eb314', 3, 9, '2021-12-14 19:25:37', 9, '2021-12-14 19:25:37'),
(35, 7, '종료', 'N', 'Y', 100, '#b17247', 4, 9, '2021-12-14 19:25:37', 9, '2021-12-14 19:25:37');
/*!40000 ALTER TABLE `workflow_status` ENABLE KEYS */;
-- 테이블 데이터 prod_db.workflow_transition:~30 rows (대략적) 내보내기
DELETE FROM `workflow_transition`;
/*!40000 ALTER TABLE `workflow_transition` DISABLE KEYS */;
INSERT INTO `workflow_transition` (`id`, `workflow_id`, `source_issue_status_id`, `target_issue_status_id`, `source_x`, `source_y`, `target_x`, `target_y`, `correct_x`, `correct_y`, `direct`, `register_date`, `register_id`, `modify_date`, `modify_id`) VALUES
(58, 6, 1, 15, 132, 71, 300, 74, 148, 69, 'N', '2021-12-06 09:52:14', 1, '2021-12-06 09:52:14', 1),
(59, 6, 15, 16, 300, 74, 468, 73, 332, 72, 'N', '2021-12-06 09:52:14', 1, '2021-12-06 09:52:14', 1),
(60, 6, 15, 18, 300, 74, 396, 188, 390, 88, 'N', '2021-12-06 09:52:14', 1, '2021-12-06 09:52:14', 1),
(61, 6, 16, 17, 468, 73, 645, 75, 468, 73, 'N', '2021-12-06 09:52:14', 1, '2021-12-06 09:52:14', 1),
(62, 6, 18, 19, 396, 188, 556, 213, 476, 129, 'N', '2021-12-06 09:52:14', 1, '2021-12-06 09:52:14', 1),
(63, 6, 19, 18, 556, 213, 396, 188, 513, 232, 'N', '2021-12-06 09:52:14', 1, '2021-12-06 09:52:14', 1),
(64, 6, 19, 13, 556, 213, 671, 215, 556, 213, 'N', '2021-12-06 09:52:14', 1, '2021-12-06 09:52:14', 1),
(75, 7, 1, 21, 109, 36, 285, 38, 109, 36, 'N', '2021-12-10 14:32:25', 6, '2021-12-10 14:32:25', 6),
(76, 7, 15, 16, 377, 159, 565, 172, 377, 159, 'N', '2021-12-10 14:32:25', 6, '2021-12-10 14:32:25', 6),
(77, 7, 16, 17, 565, 172, 735, 179, 565, 172, 'N', '2021-12-10 14:32:25', 6, '2021-12-10 14:32:25', 6),
(78, 7, 21, 22, 285, 38, 486, 37, 285, 38, 'N', '2021-12-10 14:32:25', 6, '2021-12-10 14:32:25', 6),
(79, 7, 21, 15, 285, 38, 377, 159, 347, 43, 'N', '2021-12-10 14:32:25', 6, '2021-12-10 14:32:25', 6),
(80, 5, 1, 15, 38, 41, 162, 33, 117, 35, 'N', '2021-12-10 14:43:10', 6, '2021-12-10 14:43:10', 6),
(81, 5, 15, 16, 162, 33, 438, 30, 297, 30, 'N', '2021-12-10 14:43:10', 6, '2021-12-10 14:43:10', 6),
(82, 5, 15, 18, 162, 33, 274, 154, 286, 43, 'N', '2021-12-10 14:43:10', 6, '2021-12-10 14:43:10', 6),
(83, 5, 16, 17, 438, 30, 598, 30, 434, 30, 'N', '2021-12-10 14:43:10', 6, '2021-12-10 14:43:10', 6),
(84, 5, 18, 19, 274, 154, 433, 195, 363, 218, 'N', '2021-12-10 14:43:10', 6, '2021-12-10 14:43:10', 6),
(85, 5, 19, 18, 433, 195, 274, 154, 397, 82, 'N', '2021-12-10 14:43:10', 6, '2021-12-10 14:43:10', 6),
(86, 5, 19, 13, 433, 195, 605, 181, 432, 195, 'N', '2021-12-10 14:43:10', 6, '2021-12-10 14:43:10', 6),
(87, 4, 11, 12, 434, 227, 599, 211, 434, 227, 'N', '2021-12-13 17:01:35', 6, '2021-12-13 17:01:35', 6),
(88, 4, 11, 13, 434, 227, 441, 30, 434, 227, 'N', '2021-12-13 17:01:35', 6, '2021-12-13 17:01:35', 6),
(89, 4, 12, 14, 599, 211, 810, 153, 594, 218, 'N', '2021-12-13 17:01:35', 6, '2021-12-13 17:01:35', 6),
(90, 4, 12, 13, 599, 211, 441, 30, 599, 211, 'N', '2021-12-13 17:01:35', 6, '2021-12-13 17:01:35', 6),
(91, 4, 14, 13, 810, 153, 441, 30, 810, 153, 'N', '2021-12-13 17:01:35', 6, '2021-12-13 17:01:35', 6),
(92, 4, 8, 9, 44, 69, 132, 167, 76, 93, 'N', '2021-12-13 17:01:36', 6, '2021-12-13 17:01:36', 6),
(93, 4, 8, 13, 44, 69, 441, 30, 56, 69, 'N', '2021-12-13 17:01:36', 6, '2021-12-13 17:01:36', 6),
(94, 4, 9, 10, 132, 167, 276, 236, 140, 171, 'N', '2021-12-13 17:01:36', 6, '2021-12-13 17:01:36', 6),
(95, 4, 9, 13, 132, 167, 441, 30, 140, 171, 'N', '2021-12-13 17:01:36', 6, '2021-12-13 17:01:36', 6),
(96, 4, 10, 11, 276, 236, 434, 227, 282, 223, 'N', '2021-12-13 17:01:36', 6, '2021-12-13 17:01:36', 6),
(97, 4, 10, 13, 276, 236, 441, 30, 282, 223, 'N', '2021-12-13 17:01:36', 6, '2021-12-13 17:01:36', 6);
/*!40000 ALTER TABLE `workflow_transition` ENABLE KEYS */;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
src/main/resources/migration/V1_3__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_4__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_5__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_6__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_7__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_8__Alter_Table.sql
File was deleted
src/main/resources/migration/V1_9__Alter_Table.sql
File was deleted
src/main/resources/mybatis/query-template/companyField-template.xml
@@ -23,6 +23,9 @@
        <if test="id != '' and id != null">
            AND cf.id like CONCAT('%',#{id},'%')
        </if>
        <if test="url != '' and id != url">
            AND cf.url like CONCAT('%',#{url},'%')
        </if>
        ORDER BY cf.id DESC
        <if test="pageSize != '' and pageSize != null">
            limit #{pageSize} offset #{page};
src/main/webapp/assets/styles/main.css
@@ -5225,7 +5225,7 @@
}*/
.modal-open {
    overflow: auto
    overflow: hidden;
}
.modal {