diff --git a/backend/src/main/resources/db/migration/V1__init.sql b/backend/src/main/resources/db/migration/V1__init.sql new file mode 100644 index 0000000000..d3fec9ab66 --- /dev/null +++ b/backend/src/main/resources/db/migration/V1__init.sql @@ -0,0 +1 @@ +select database(); \ No newline at end of file diff --git a/backend/src/main/resources/db/migration/V2__metersphere_ddl.sql b/backend/src/main/resources/db/migration/V2__metersphere_ddl.sql new file mode 100644 index 0000000000..df787a2b62 --- /dev/null +++ b/backend/src/main/resources/db/migration/V2__metersphere_ddl.sql @@ -0,0 +1,338 @@ +CREATE TABLE IF NOT EXISTS `file_content` ( + `file_id` varchar(64) NOT NULL COMMENT 'File ID', + `file` longblob COMMENT 'File content', + PRIMARY KEY (`file_id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + +CREATE TABLE IF NOT EXISTS `file_metadata` ( + `id` varchar(64) NOT NULL COMMENT 'File ID', + `name` varchar(64) NOT NULL COMMENT 'File name', + `type` varchar(64) DEFAULT NULL COMMENT 'File type', + `size` bigint(13) NOT NULL COMMENT 'File size', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; + +CREATE TABLE `load_test` ( + `id` varchar(50) NOT NULL COMMENT 'Test ID', + `project_id` varchar(50) NOT NULL COMMENT 'Project ID this test belongs to', + `name` varchar(64) NOT NULL COMMENT 'Test name', + `description` varchar(255) DEFAULT NULL COMMENT 'Test description', + `load_configuration` longtext COMMENT 'Load configuration (JSON format)', + `advanced_configuration` longtext COMMENT 'Load configuration (JSON format)', + `schedule` longtext COMMENT 'Test schedule (cron list)', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + `status` varchar(64) DEFAULT NULL COMMENT 'Test Status Running, Completed, Error, etc.', + `test_resource_pool_id` varchar(50) DEFAULT NULL, + `user_id` varchar(64) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; + +CREATE TABLE IF NOT EXISTS `load_test_file` ( + `test_id` varchar(64) DEFAULT NULL, + `file_id` varchar(64) DEFAULT NULL, + UNIQUE KEY `load_test_file_unique_key` (`test_id`, `file_id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='测试和文件的关联表'; + +CREATE TABLE `load_test_report` ( + `id` varchar(50) NOT NULL COMMENT 'Test report ID', + `test_id` varchar(50) NOT NULL COMMENT 'Test ID this test report belongs to', + `name` varchar(64) NOT NULL COMMENT 'Test report name', + `description` text COMMENT 'Test report message', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + `status` varchar(64) NOT NULL COMMENT 'Status of this test run', + `user_id` varchar(64) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; + +CREATE TABLE IF NOT EXISTS `load_test_report_detail` ( + `report_id` varchar(50) NOT NULL, + `content` longtext, + `part` bigint(11) NOT NULL, + PRIMARY KEY (`report_id`,`part`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `load_test_report_log` ( + `id` varchar(50) NOT NULL, + `report_id` varchar(50) NOT NULL, + `resource_id` varchar(50) DEFAULT NULL, + `content` longtext , + `part` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `load_test_report_log_report_id_resource_name_index` (`report_id`,`resource_id`,`part`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `load_test_report_result` ( + `id` varchar(50) NOT NULL, + `report_id` varchar(50) NOT NULL, + `report_key` varchar(64) DEFAULT NULL, + `report_value` text , + PRIMARY KEY (`id`), + KEY `load_test_report_result_report_id_report_key_index` (`report_id`,`report_key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + +CREATE TABLE IF NOT EXISTS `organization` ( + `id` varchar(50) NOT NULL COMMENT 'Organization ID', + `name` varchar(64) NOT NULL COMMENT 'Organization name', + `description` varchar(255) DEFAULT NULL COMMENT 'Organization description', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + PRIMARY KEY (`id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + ; + +CREATE TABLE IF NOT EXISTS `project` ( + `id` varchar(50) NOT NULL COMMENT 'Project ID', + `workspace_id` varchar(50) NOT NULL COMMENT 'Workspace ID this project belongs to', + `name` varchar(64) NOT NULL COMMENT 'Project name', + `description` varchar(255) DEFAULT NULL COMMENT 'Project description', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + PRIMARY KEY (`id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + ; + +CREATE TABLE IF NOT EXISTS `role` ( + `id` varchar(50) NOT NULL COMMENT 'Role ID', + `name` varchar(64) NOT NULL COMMENT 'Role name', + `description` varchar(255) DEFAULT NULL COMMENT 'Role description', + `type` varchar(50) DEFAULT NULL COMMENT 'Role type, (system|organization|workspace)', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + PRIMARY KEY (`id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + +CREATE TABLE IF NOT EXISTS `system_parameter` ( + `param_key` varchar(64) CHARACTER SET utf8mb4 NOT NULL COMMENT 'Parameter name', + `param_value` varchar(255) DEFAULT NULL COMMENT 'Parameter value', + `type` varchar(100) NOT NULL DEFAULT 'text' COMMENT 'Parameter type', + `sort` int(5) DEFAULT NULL COMMENT 'Sort', + PRIMARY KEY (`param_key`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + +CREATE TABLE IF NOT EXISTS `test_resource` ( + `id` varchar(50) NOT NULL COMMENT 'Test resource ID', + `test_resource_pool_id` varchar(50) NOT NULL COMMENT 'Test resource pool ID this test resource belongs to', + `configuration` longtext COMMENT 'Test resource configuration', + `status` varchar(64) NOT NULL COMMENT 'Test resource status', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + PRIMARY KEY (`id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + +CREATE TABLE IF NOT EXISTS `test_resource_pool` ( + `id` varchar(50) NOT NULL COMMENT 'Test resource pool ID', + `name` varchar(64) NOT NULL COMMENT 'Test resource pool name', + `type` varchar(30) NOT NULL COMMENT 'Test resource pool type', + `description` varchar(255) DEFAULT NULL COMMENT 'Test resource pool description', + `status` varchar(64) NOT NULL COMMENT 'Test resource pool status', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + PRIMARY KEY (`id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + +CREATE TABLE IF NOT EXISTS `user` ( + `id` varchar(50) COLLATE utf8mb4_bin NOT NULL COMMENT 'User ID', + `name` varchar(64) NOT NULL COMMENT 'User name', + `email` varchar(64) NOT NULL COMMENT 'E-Mail address', + `password` varchar(256) COLLATE utf8mb4_bin DEFAULT NULL, + `status` varchar(50) NOT NULL COMMENT 'User status', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + `language` varchar(30) DEFAULT NULL, + `last_workspace_id` varchar(50) DEFAULT NULL, + `last_organization_id` varchar(50) DEFAULT NULL, + `phone` varchar(50) DEFAULT NULL COMMENT 'Phone number of user', + PRIMARY KEY (`id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + +CREATE TABLE IF NOT EXISTS `user_role` ( + `id` varchar(50) NOT NULL COMMENT 'ID of user''s role info', + `user_id` varchar(50) NOT NULL COMMENT 'User ID of this user-role info', + `role_id` varchar(50) NOT NULL COMMENT 'Role ID of this user-role info', + `source_id` varchar(50) DEFAULT NULL COMMENT 'The (system|organization|workspace) ID of this user-role info', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + PRIMARY KEY (`id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + +CREATE TABLE IF NOT EXISTS `workspace` ( + `id` varchar(50) NOT NULL COMMENT 'Workspace ID ', + `organization_id` varchar(50) NOT NULL COMMENT 'Organization ID this workspace belongs to', + `name` varchar(64) NOT NULL COMMENT 'Workspace name', + `description` varchar(255) DEFAULT NULL COMMENT 'Workspace description', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + PRIMARY KEY (`id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + +-- api start + +CREATE TABLE IF NOT EXISTS `api_test` ( + `id` varchar(50) NOT NULL COMMENT 'Test ID', + `project_id` varchar(50) NOT NULL COMMENT 'Project ID this test belongs to', + `name` varchar(64) NOT NULL COMMENT 'Test name', + `description` varchar(255) DEFAULT NULL COMMENT 'Test description', + `scenario_definition` longtext COMMENT 'Scenario definition (JSON format)', + `schedule` longtext COMMENT 'Test schedule (cron list)', + `status` varchar(64) DEFAULT NULL COMMENT 'Status of this test', + `user_id` varchar(64) DEFAULT NULL COMMENT 'User ID', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `api_test_file` ( + `test_id` varchar(64) DEFAULT NULL, + `file_id` varchar(64) DEFAULT NULL, + UNIQUE KEY `api_test_file_unique_key` (`test_id`, `file_id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='Api test test file relevance table'; + +CREATE TABLE IF NOT EXISTS `api_test_report` ( + `id` varchar(50) NOT NULL COMMENT 'Test report ID', + `test_id` varchar(50) NOT NULL COMMENT 'Test ID this test report belongs to', + `name` varchar(64) NOT NULL COMMENT 'Test report name', + `description` varchar(255) DEFAULT NULL COMMENT 'Test report name', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + `status` varchar(64) NOT NULL COMMENT 'Status of this test run', + `user_id` varchar(64) DEFAULT NULL COMMENT 'User ID', + PRIMARY KEY (`id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + +CREATE TABLE IF NOT EXISTS `api_test_report_detail` ( + `report_id` varchar(64) NOT NULL COMMENT 'API Test Report ID', + `test_id` varchar(64) NOT NULL COMMENT 'Test ID', + `content` longblob COMMENT 'Report content', + PRIMARY KEY (`report_id`) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; + +-- api end + +-- track start + +CREATE TABLE IF NOT EXISTS `test_plan` ( + `id` varchar(50) NOT NULL COMMENT 'Test Plan ID', + `project_id` varchar(50) NOT NULL COMMENT 'Project ID this plan belongs to', + `workspace_id` varchar(50) NOT NULL COMMENT 'Workspace ID this plan belongs to', + `report_id` varchar(50) COMMENT 'Test plan report', + `name` varchar(64) NOT NULL COMMENT 'Plan name', + `description` varchar(255) DEFAULT NULL COMMENT 'Plan description', + `status` varchar(20) NOT NULL COMMENT 'Plan status', + `stage` varchar(30) NOT NULL COMMENT 'Plan stage', + `principal` varchar(50) NOT NULL COMMENT 'Plan principal', + `test_case_match_rule` varchar(255) DEFAULT NULL COMMENT 'Test case match rule', + `executor_match_rule` varchar(255) DEFAULT NULL COMMENT 'Executor match rule)', + `tags` text COMMENT 'Test plan tags (JSON format)', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + PRIMARY KEY (`id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + + +CREATE TABLE IF NOT EXISTS `test_case_node` ( + `id` varchar(50) NOT NULL COMMENT 'Test case node ID', + `project_id` varchar(50) NOT NULL COMMENT 'Project ID this node belongs to', + `name` varchar(64) NOT NULL COMMENT 'Node name', + `parent_id` varchar(50) DEFAULT NULL COMMENT 'Parent node ID', + `level` int(10) DEFAULT 1 COMMENT 'Node level', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + PRIMARY KEY (`id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + + +CREATE TABLE IF NOT EXISTS `test_case` ( + `id` varchar(50) NOT NULL COMMENT 'Test case ID', + `node_id` varchar(50) NOT NULL COMMENT 'Node ID this case belongs to', + `test_id` varchar(50) DEFAULT NULL COMMENT 'Test ID relation to', + `node_path` varchar(50) NOT NULL COMMENT 'Node path this case belongs to', + `project_id` varchar(50) NOT NULL COMMENT 'Project ID this test belongs to', + `name` varchar(64) NOT NULL COMMENT 'Case name', + `type` varchar(25) NOT NULL COMMENT 'Test case type', + `maintainer` varchar(25) NOT NULL COMMENT 'Test case maintainer', + `priority` varchar(50) NOT NULL COMMENT 'Test case priority', + `method` varchar(15) NOT NULL COMMENT 'Test case method type', + `prerequisite` varchar(255) DEFAULT NULL COMMENT 'Test case prerequisite condition', + `remark` text DEFAULT NULL COMMENT 'Test case remark', + `steps` text DEFAULT NULL COMMENT 'Test case steps (JSON format)', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + PRIMARY KEY (`id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + + +CREATE TABLE IF NOT EXISTS `test_plan_test_case` ( + `id` varchar(50) NOT NULL COMMENT 'ID', + `plan_id` varchar(50) NOT NULL COMMENT 'Plan ID relation to', + `case_id` varchar(50) NOT NULL COMMENT 'Case ID relation to', + `report_id` varchar(50) DEFAULT NULL COMMENT 'Test report ID relation to', + `executor` varchar(64) NOT NULL COMMENT 'Test case executor', + `status` varchar(15) NULL COMMENT 'Test case status', + `results` longtext COMMENT 'Test case result', + `issues` longtext COMMENT 'Test case result issues', + `remark` varchar(255) DEFAULT NULL COMMENT 'Test case remark', + `create_time` bigint(13) NOT NULL COMMENT 'Create timestamp', + `update_time` bigint(13) NOT NULL COMMENT 'Update timestamp', + PRIMARY KEY (`id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + +CREATE TABLE IF NOT EXISTS `test_case_report_template` ( + `id` varchar(50) NOT NULL, + `name` varchar(64) NOT NULL COMMENT 'Test case report template name', + `workspace_id` varchar(50) DEFAULT NULL COMMENT 'Workspace ID this project belongs to', + `content` longtext COMMENT 'Template content (JSON format)', + PRIMARY KEY (`id`) +) + ENGINE=InnoDB + DEFAULT CHARSET=utf8mb4; + +CREATE TABLE IF NOT EXISTS `test_case_report` ( + `id` varchar(50) NOT NULL, + `name` varchar(64) NOT NULL COMMENT 'Test case report name', + `content` longtext COMMENT 'Report content (JSON format)', + `start_time` bigint(13) COMMENT 'Test start time', + `end_time` bigint(13) COMMENT 'Test end time', + PRIMARY KEY (`id`) +) + ENGINE=InnoDB + DEFAULT CHARSET=utf8mb4; + +-- track end + + + diff --git a/backend/src/main/resources/db/migration/V3__init_data.sql b/backend/src/main/resources/db/migration/V3__init_data.sql new file mode 100644 index 0000000000..5956765a57 --- /dev/null +++ b/backend/src/main/resources/db/migration/V3__init_data.sql @@ -0,0 +1,38 @@ +INSERT INTO user (id, name, email, password, status, create_time, update_time, language, last_workspace_id, last_organization_id, phone) +VALUES ('admin', 'Administrator', 'admin@metersphere.io', md5('metersphere'), '1', unix_timestamp() * 1000, unix_timestamp() * 1000, NULL, '', NULL, + NULL); + +INSERT INTO user_role (id, user_id, role_id, source_id, create_time, update_time) +VALUES (uuid(), 'admin', 'admin', '1', unix_timestamp() * 1000, unix_timestamp() * 1000); + +INSERT INTO role (id, name, description, type, create_time, update_time) +VALUES ('admin', '系统管理员', NULL, NULL, unix_timestamp() * 1000, unix_timestamp() * 1000); +INSERT INTO role (id, name, description, type, create_time, update_time) +VALUES ('org_admin', '组织管理员', NULL, NULL, unix_timestamp() * 1000, unix_timestamp() * 1000); +INSERT INTO role (id, name, description, type, create_time, update_time) +VALUES ('test_manager', '测试经理', NULL, NULL, unix_timestamp() * 1000, unix_timestamp() * 1000); +INSERT INTO role (id, name, description, type, create_time, update_time) +VALUES ('test_user', '测试人员', NULL, NULL, unix_timestamp() * 1000, unix_timestamp() * 1000); +INSERT INTO role (id, name, description, type, create_time, update_time) +VALUES ('test_viewer', 'Viewer', NULL, NULL, unix_timestamp() * 1000, unix_timestamp() * 1000); + +INSERT INTO organization (id, name, description, create_time, update_time) +VALUES (uuid(), '默认组织', '系统默认创建的组织', unix_timestamp() * 1000, unix_timestamp() * 1000); +INSERT INTO workspace (id, organization_id, name, description, create_time, update_time) +VALUES (uuid(), (SELECT id FROM organization WHERE name LIKE '默认组织'), '默认工作空间', '系统默认创建的工作空间', unix_timestamp() * 1000, unix_timestamp() * 1000); +INSERT INTO user_role (id, user_id, role_id, source_id, create_time, update_time) +VALUES (uuid(), 'admin', 'org_admin', (SELECT id FROM organization WHERE name LIKE '默认组织'), unix_timestamp() * 1000, unix_timestamp() * 1000); +INSERT INTO user_role (id, user_id, role_id, source_id, create_time, update_time) +VALUES (uuid(), 'admin', 'test_manager', (SELECT id FROM workspace WHERE name LIKE '默认工作空间'), unix_timestamp() * 1000, unix_timestamp() * 1000); + +INSERT INTO test_resource_pool (id, name, type, description, status, create_time, update_time) +VALUES (uuid(), 'LOCAL', 'NODE', '系统默认创建的本地资源池', 'VALID', unix_timestamp() * 1000, unix_timestamp() * 1000); +INSERT INTO test_resource (id, test_resource_pool_id, configuration, status, create_time, update_time) +VALUES (uuid(), (SELECT id FROM test_resource_pool WHERE name LIKE 'LOCAL'), + 'GgC8aAZVAsiNDdnvp4gobdv1iwAvloLCAaeqb7Ms1VaLzW+iXHsFhGg8ZaPEk53W6xA5A6g+UUUxbKvU2s7yZw==', 'VALID', unix_timestamp() * 1000, + unix_timestamp() * 1000); + +INSERT INTO test_case_report_template (id, name, content) +VALUES (uuid(), 'default', '{\"components\": [1,2,3,4,5]}'); +INSERT INTO system_parameter (param_key, param_value, type, sort) +VALUES ('default.language', 'zh_CN', 'text', 5); diff --git a/backend/src/main/resources/db/migration/V4__user_key.sql b/backend/src/main/resources/db/migration/V4__user_key.sql new file mode 100644 index 0000000000..a85604a3d1 --- /dev/null +++ b/backend/src/main/resources/db/migration/V4__user_key.sql @@ -0,0 +1,20 @@ +CREATE TABLE `user_key` ( + `id` varchar(50) NOT NULL DEFAULT '' COMMENT 'user_key ID', + `user_id` varchar(50) NOT NULL COMMENT '用户ID', + `access_key` varchar(50) NOT NULL COMMENT 'access_key', + `secret_key` varchar(50) NOT NULL COMMENT 'secret key', + `create_time` bigint(13) NOT NULL COMMENT '创建时间', + `status` varchar(10) DEFAULT NULL COMMENT '状态', + PRIMARY KEY (`id`), + UNIQUE KEY `IDX_AK` (`access_key`), + KEY `IDX_USER_ID` (`user_id`) +) + ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4; + + +alter table user add source varchar(50) null; + +update user set source = 'LOCAL' where source is null; + +alter table user add last_project_id varchar(50) null; diff --git a/backend/src/main/resources/db/migration/V5__schedule.sql b/backend/src/main/resources/db/migration/V5__schedule.sql new file mode 100644 index 0000000000..41f7e62cd6 --- /dev/null +++ b/backend/src/main/resources/db/migration/V5__schedule.sql @@ -0,0 +1,175 @@ +-- quartz start +CREATE TABLE `qrtz_job_details` ( + `SCHED_NAME` varchar(120) NOT NULL, + `JOB_NAME` varchar(200) NOT NULL, + `JOB_GROUP` varchar(200) NOT NULL, + `DESCRIPTION` varchar(250) DEFAULT NULL, + `JOB_CLASS_NAME` varchar(250) NOT NULL, + `IS_DURABLE` varchar(1) NOT NULL, + `IS_NONCONCURRENT` varchar(1) NOT NULL, + `IS_UPDATE_DATA` varchar(1) NOT NULL, + `REQUESTS_RECOVERY` varchar(1) NOT NULL, + `JOB_DATA` blob, + PRIMARY KEY (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`), + KEY `IDX_QRTZ_J_REQ_RECOVERY` (`SCHED_NAME`,`REQUESTS_RECOVERY`), + KEY `IDX_QRTZ_J_GRP` (`SCHED_NAME`,`JOB_GROUP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `qrtz_triggers` ( + `SCHED_NAME` varchar(120) NOT NULL, + `TRIGGER_NAME` varchar(200) NOT NULL, + `TRIGGER_GROUP` varchar(200) NOT NULL, + `JOB_NAME` varchar(200) NOT NULL, + `JOB_GROUP` varchar(200) NOT NULL, + `DESCRIPTION` varchar(250) DEFAULT NULL, + `NEXT_FIRE_TIME` bigint(13) DEFAULT NULL, + `PREV_FIRE_TIME` bigint(13) DEFAULT NULL, + `PRIORITY` int(11) DEFAULT NULL, + `TRIGGER_STATE` varchar(16) NOT NULL, + `TRIGGER_TYPE` varchar(8) NOT NULL, + `START_TIME` bigint(13) NOT NULL, + `END_TIME` bigint(13) DEFAULT NULL, + `CALENDAR_NAME` varchar(200) DEFAULT NULL, + `MISFIRE_INSTR` smallint(2) DEFAULT NULL, + `JOB_DATA` blob, + PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`), + KEY `IDX_QRTZ_T_J` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`), + KEY `IDX_QRTZ_T_JG` (`SCHED_NAME`,`JOB_GROUP`), + KEY `IDX_QRTZ_T_C` (`SCHED_NAME`,`CALENDAR_NAME`), + KEY `IDX_QRTZ_T_G` (`SCHED_NAME`,`TRIGGER_GROUP`), + KEY `IDX_QRTZ_T_STATE` (`SCHED_NAME`,`TRIGGER_STATE`), + KEY `IDX_QRTZ_T_N_STATE` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`), + KEY `IDX_QRTZ_T_N_G_STATE` (`SCHED_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`), + KEY `IDX_QRTZ_T_NEXT_FIRE_TIME` (`SCHED_NAME`,`NEXT_FIRE_TIME`), + KEY `IDX_QRTZ_T_NFT_ST` (`SCHED_NAME`,`TRIGGER_STATE`,`NEXT_FIRE_TIME`), + KEY `IDX_QRTZ_T_NFT_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`), + KEY `IDX_QRTZ_T_NFT_ST_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_STATE`), + KEY `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_GROUP`,`TRIGGER_STATE`), + CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `qrtz_job_details` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `qrtz_blob_triggers` ( + `SCHED_NAME` varchar(120) NOT NULL, + `TRIGGER_NAME` varchar(200) NOT NULL, + `TRIGGER_GROUP` varchar(200) NOT NULL, + `BLOB_DATA` blob, + PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`), + KEY `SCHED_NAME` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`), + CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `qrtz_calendars` ( + `SCHED_NAME` varchar(120) NOT NULL, + `CALENDAR_NAME` varchar(200) NOT NULL, + `CALENDAR` blob NOT NULL, + PRIMARY KEY (`SCHED_NAME`,`CALENDAR_NAME`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `qrtz_cron_triggers` ( + `SCHED_NAME` varchar(120) NOT NULL, + `TRIGGER_NAME` varchar(200) NOT NULL, + `TRIGGER_GROUP` varchar(200) NOT NULL, + `CRON_EXPRESSION` varchar(120) NOT NULL, + `TIME_ZONE_ID` varchar(80) DEFAULT NULL, + PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`), + CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `qrtz_fired_triggers` ( + `SCHED_NAME` varchar(120) NOT NULL, + `ENTRY_ID` varchar(95) NOT NULL, + `TRIGGER_NAME` varchar(200) NOT NULL, + `TRIGGER_GROUP` varchar(200) NOT NULL, + `INSTANCE_NAME` varchar(200) NOT NULL, + `FIRED_TIME` bigint(13) NOT NULL, + `SCHED_TIME` bigint(13) NOT NULL, + `PRIORITY` int(11) NOT NULL, + `STATE` varchar(16) NOT NULL, + `JOB_NAME` varchar(200) DEFAULT NULL, + `JOB_GROUP` varchar(200) DEFAULT NULL, + `IS_NONCONCURRENT` varchar(1) DEFAULT NULL, + `REQUESTS_RECOVERY` varchar(1) DEFAULT NULL, + PRIMARY KEY (`SCHED_NAME`,`ENTRY_ID`), + KEY `IDX_QRTZ_FT_TRIG_INST_NAME` (`SCHED_NAME`,`INSTANCE_NAME`), + KEY `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY` (`SCHED_NAME`,`INSTANCE_NAME`,`REQUESTS_RECOVERY`), + KEY `IDX_QRTZ_FT_J_G` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`), + KEY `IDX_QRTZ_FT_JG` (`SCHED_NAME`,`JOB_GROUP`), + KEY `IDX_QRTZ_FT_T_G` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`), + KEY `IDX_QRTZ_FT_TG` (`SCHED_NAME`,`TRIGGER_GROUP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `qrtz_locks` ( + `SCHED_NAME` varchar(120) NOT NULL, + `LOCK_NAME` varchar(40) NOT NULL, + PRIMARY KEY (`SCHED_NAME`,`LOCK_NAME`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `qrtz_paused_trigger_grps` ( + `SCHED_NAME` varchar(120) NOT NULL, + `TRIGGER_GROUP` varchar(200) NOT NULL, + PRIMARY KEY (`SCHED_NAME`,`TRIGGER_GROUP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `qrtz_scheduler_state` ( + `SCHED_NAME` varchar(120) NOT NULL, + `INSTANCE_NAME` varchar(200) NOT NULL, + `LAST_CHECKIN_TIME` bigint(13) NOT NULL, + `CHECKIN_INTERVAL` bigint(13) NOT NULL, + PRIMARY KEY (`SCHED_NAME`,`INSTANCE_NAME`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `qrtz_simple_triggers` ( + `SCHED_NAME` varchar(120) NOT NULL, + `TRIGGER_NAME` varchar(200) NOT NULL, + `TRIGGER_GROUP` varchar(200) NOT NULL, + `REPEAT_COUNT` bigint(7) NOT NULL, + `REPEAT_INTERVAL` bigint(12) NOT NULL, + `TIMES_TRIGGERED` bigint(10) NOT NULL, + PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`), + CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE `qrtz_simprop_triggers` ( + `SCHED_NAME` varchar(120) NOT NULL, + `TRIGGER_NAME` varchar(200) NOT NULL, + `TRIGGER_GROUP` varchar(200) NOT NULL, + `STR_PROP_1` varchar(512) DEFAULT NULL, + `STR_PROP_2` varchar(512) DEFAULT NULL, + `STR_PROP_3` varchar(512) DEFAULT NULL, + `INT_PROP_1` int(11) DEFAULT NULL, + `INT_PROP_2` int(11) DEFAULT NULL, + `LONG_PROP_1` bigint(20) DEFAULT NULL, + `LONG_PROP_2` bigint(20) DEFAULT NULL, + `DEC_PROP_1` decimal(13,4) DEFAULT NULL, + `DEC_PROP_2` decimal(13,4) DEFAULT NULL, + `BOOL_PROP_1` varchar(1) DEFAULT NULL, + `BOOL_PROP_2` varchar(1) DEFAULT NULL, + PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`), + CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- quartz end + +CREATE TABLE IF NOT EXISTS `schedule` ( + `id` varchar(50) NOT NULL COMMENT 'Schedule ID', + `key` varchar(50) NOT NULL COMMENT 'Schedule Key', + `type` varchar(50) NOT NULL COMMENT 'Schedule Type', + `value` varchar(255) NOT NULL COMMENT 'Schedule value', + `group` varchar(50) DEFAULT NULL COMMENT 'Group Name', + `job` varchar(64) NOT NULL COMMENT 'Schedule Job Class Name', + `enable` tinyint(1) COMMENT 'Schedule Eable', + `resource_id` varchar(64) NOT NULL COMMENT 'Resource Id', + `user_id` varchar(50) NOT NULL COMMENT 'Change User', + `custom_data` longtext COMMENT 'Custom Data (JSON format)', + PRIMARY KEY (`id`), + KEY `resource_id` ( `resource_id` ) +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4; + +ALTER TABLE `api_test` DROP COLUMN `schedule`; +ALTER TABLE `load_test` DROP COLUMN `schedule`; +ALTER TABLE `api_test_report` ADD `trigger_mode` varchar(64) NULL; +ALTER TABLE `load_test_report` ADD `trigger_mode` varchar(64) NULL; +UPDATE `api_test_report` SET `trigger_mode` = 'MANUAL' WHERE 1; +UPDATE `load_test_report` SET `trigger_mode` = 'MANUAL' WHERE 1; + +alter table test_case add sort int null comment 'Import test case sort'; \ No newline at end of file