1、hosts(主机表)
CREATE TABLE `hosts` (
`host_id` bigint(20) NOT NULL, -- 主机ID
`host_name` varchar(255) NOT NULL, -- 主机名称
`cpu_count` int(11) NOT NULL,-- cpu数量
`cpu_info` varchar(255) NOT NULL,-- cpu信息
`discovery_status` varchar(2000) NOT NULL,
`host_attributes` longtext NOT NULL,-- 主机属性
`ipv4` varchar(255) DEFAULT NULL,-- 地址
`ipv6` varchar(255) DEFAULT NULL,-- 地址
`last_registration_time` bigint(20) NOT NULL,-- 最后登记时间
`os_arch` varchar(255) NOT NULL,-- 操作系统架构
`os_info` varchar(1000) NOT NULL,
`os_type` varchar(255) NOT NULL,-- 操作系统类型
`ph_cpu_count` int(11) DEFAULT NULL,
`public_host_name` varchar(255) DEFAULT NULL,-- 主机名
`rack_info` varchar(255) NOT NULL,-- 机架信息
`total_mem` bigint(20) NOT NULL,-- 总内存
PRIMARY KEY (`host_id`),-- 主键host_id
UNIQUE KEY `UQ_hosts_host_name` (`host_name`)-- 唯一索引host_id
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
2、hoststate(主机状态表)
CREATE TABLE `hoststate` (
`agent_version` varchar(255) NOT NULL,-- agent版本
`available_mem` bigint(20) NOT NULL,-- 可用内存
`current_state` varchar(255) NOT NULL,-- 当前状态
`health_status` varchar(255) DEFAULT NULL,-- 健康状态
`host_id` bigint(20) NOT NULL,-- 主机id
`time_in_state` bigint(20) NOT NULL,
`maintenance_state` varchar(512) DEFAULT NULL,-- 维护模式状态
PRIMARY KEY (`host_id`),
CONSTRAINT `FK_hoststate_host_id` FOREIGN KEY (`host_id`) REFERENCES `hosts` (`host_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
3、hostcomponentstate(主机组件状态表)
CREATE TABLE `hostcomponentstate` (-- 主机组件状态表
`id` bigint(20) NOT NULL,-- 组件id
`cluster_id` bigint(20) NOT NULL,-- 集群id
`component_name` varchar(100) NOT NULL,-- 组件名称
`version` varchar(32) NOT NULL DEFAULT 'UNKNOWN',-- 版本
`current_state` varchar(255) NOT NULL,-- 目前状态
`last_live_state` varchar(255) NOT NULL DEFAULT 'UNKNOWN',-- 上一次活跃状态
`host_id` bigint(20) NOT NULL,-- 主机id(在集群)
`service_name` varchar(100) NOT NULL,-- 组件对应服务名称
`upgrade_state` varchar(32) NOT NULL DEFAULT 'NONE',-- 升级状态
PRIMARY KEY (`id`),
KEY `hstcomponentstatecomponentname` (`component_name`,`service_name`,`cluster_id`),
KEY `idx_host_component_state` (`host_id`,`component_name`,`service_name`,`cluster_id`),
CONSTRAINT `FK_hostcomponentstate_host_id` FOREIGN KEY (`host_id`) REFERENCES `hosts` (`host_id`),
CONSTRAINT `hstcomponentstatecomponentname` FOREIGN KEY (`component_name`, `service_name`, `cluster_id`) REFERENCES `servicecomponentdesiredstate` (`component_name`, `service_name`, `cluster_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
4、hostcomponentdesiredstate(主机组件预期状态表)
CREATE TABLE `hostcomponentdesiredstate` ( -- 主机组件预期状态表
`id` bigint(20) NOT NULL,-- 组件id
`cluster_id` bigint(20) NOT NULL,-- 集群id
`component_name` varchar(100) NOT NULL,-- 组件名称
`desired_state` varchar(255) NOT NULL,-- 组件预期状态
`host_id` bigint(20) NOT NULL,-- 主机id
`service_name` varchar(100) NOT NULL,-- 组件对应服务名称
`admin_state` varchar(32) DEFAULT NULL,-- admin 状态
`maintenance_state` varchar(32) NOT NULL DEFAULT 'ACTIVE',-- 维护模式状态(是否开启)
`blueprint_provisioning_state` varchar(255) DEFAULT 'NONE',-- 蓝图配置状态
`restart_required` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `UQ_hcdesiredstate_name` (`component_name`,`service_name`,`host_id`,`cluster_id`),
KEY `FK_hcdesiredstate_host_id` (`host_id`),
KEY `hstcmpnntdesiredstatecmpnntnme` (`component_name`,`service_name`,`cluster_id`),
CONSTRAINT `FK_hcdesiredstate_host_id` FOREIGN KEY (`host_id`) REFERENCES `hosts` (`host_id`),
CONSTRAINT `hstcmpnntdesiredstatecmpnntnme` FOREIGN KEY (`component_name`, `service_name`, `cluster_id`) REFERENCES `servicecomponentdesiredstate` (`component_name`, `service_name`, `cluster_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
5、servicecomponent_version(服务组件状态表)
CREATE TABLE `servicecomponent_version` (
`id` bigint(20) NOT NULL,--
`component_id` bigint(20) NOT NULL,-- 对应servicecomponentdesiredstate表的id字段
`repo_version_id` bigint(20) NOT NULL,-- 对应repo_version的repo_version_id字段
`state` varchar(32) NOT NULL,
`user_name` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `FK_scv_component_id` (`component_id`),
KEY `FK_scv_repo_version_id` (`repo_version_id`),
CONSTRAINT `FK_scv_component_id` FOREIGN KEY (`component_id`) REFERENCES `servicecomponentdesiredstate` (`id`),
CONSTRAINT `FK_scv_repo_version_id` FOREIGN KEY (`repo_version_id`) REFERENCES `repo_version` (`repo_version_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
6、servicecomponentdesiredstate(服务组件预期状态表)
CREATE TABLE `servicecomponentdesiredstate` (
`id` bigint(20) NOT NULL,
`component_name` varchar(100) NOT NULL,
`cluster_id` bigint(20) NOT NULL,
`desired_repo_version_id` bigint(20) NOT NULL,
`desired_state` varchar(255) NOT NULL,
`service_name` varchar(100) NOT NULL,
`recovery_enabled` smallint(6) NOT NULL DEFAULT '0',
`repo_state` varchar(255) NOT NULL DEFAULT 'NOT_REQUIRED',
PRIMARY KEY (`id`),
UNIQUE KEY `UQ_scdesiredstate_name` (`component_name`,`service_name`,`cluster_id`),
KEY `FK_scds_desired_repo_id` (`desired_repo_version_id`),
KEY `srvccmponentdesiredstatesrvcnm` (`service_name`,`cluster_id`),
CONSTRAINT `FK_scds_desired_repo_id` FOREIGN KEY (`desired_repo_version_id`) REFERENCES `repo_version` (`repo_version_id`),
CONSTRAINT `srvccmponentdesiredstatesrvcnm` FOREIGN KEY (`service_name`, `cluster_id`) REFERENCES `clusterservices` (`service_name`, `cluster_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
7、cluster(集群表)
CREATE TABLE `clusters` (
`cluster_id` bigint(20) NOT NULL,-- 集群id
`resource_id` bigint(20) NOT NULL,-- 资源id
`upgrade_id` bigint(20) DEFAULT NULL,
`cluster_info` varchar(255) NOT NULL,
`cluster_name` varchar(100) NOT NULL,-- 集群名称
`provisioning_state` varchar(255) NOT NULL DEFAULT 'INIT',-- 配置状态
`security_type` varchar(32) NOT NULL DEFAULT 'NONE',-- 安全策略类型
`desired_cluster_state` varchar(255) NOT NULL,-- 预期集群状态
`desired_stack_id` bigint(20) NOT NULL,-- 预期库id
PRIMARY KEY (`cluster_id`),
UNIQUE KEY `cluster_name` (`cluster_name`),
KEY `FK_clusters_desired_stack_id` (`desired_stack_id`),
KEY `FK_clusters_resource_id` (`resource_id`),
KEY `FK_clusters_upgrade_id` (`upgrade_id`),
CONSTRAINT `FK_clusters_desired_stack_id` FOREIGN KEY (`desired_stack_id`) REFERENCES `stack` (`stack_id`),
CONSTRAINT `FK_clusters_resource_id` FOREIGN KEY (`resource_id`) REFERENCES `adminresource` (`resource_id`),
CONSTRAINT `FK_clusters_upgrade_id` FOREIGN KEY (`upgrade_id`) REFERENCES `upgrade` (`upgrade_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
8、upgrade(升级表)
CREATE TABLE `upgrade` (
`upgrade_id` bigint(20) NOT NULL,
`cluster_id` bigint(20) NOT NULL,
`request_id` bigint(20) NOT NULL,
`direction` varchar(255) NOT NULL DEFAULT 'UPGRADE',
`orchestration` varchar(255) NOT NULL DEFAULT 'STANDARD',
`upgrade_package` varchar(255) NOT NULL,
`upgrade_type` varchar(32) NOT NULL,
`repo_version_id` bigint(20) NOT NULL,
`skip_failures` tinyint(1) NOT NULL DEFAULT '0',
`skip_sc_failures` tinyint(1) NOT NULL DEFAULT '0',
`downgrade_allowed` tinyint(1) NOT NULL DEFAULT '1',
`revert_allowed` tinyint(1) NOT NULL DEFAULT '0',
`suspended` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`upgrade_id`),
KEY `cluster_id` (`cluster_id`),
KEY `request_id` (`request_id`),
KEY `repo_version_id` (`repo_version_id`),
CONSTRAINT `upgrade_ibfk_1` FOREIGN KEY (`cluster_id`) REFERENCES `clusters` (`cluster_id`),
CONSTRAINT `upgrade_ibfk_2` FOREIGN KEY (`request_id`) REFERENCES `request` (`request_id`),
CONSTRAINT `upgrade_ibfk_3` FOREIGN KEY (`repo_version_id`) REFERENCES `repo_version` (`repo_version_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
9、clusterservices(集群服务表)
CREATE TABLE `clusterservices` (
`service_name` varchar(255) NOT NULL,-- 服务名称
`cluster_id` bigint(20) NOT NULL,-- 集群id
`service_enabled` int(11) NOT NULL,-- 服务开启状态
PRIMARY KEY (`service_name`,`cluster_id`),
KEY `FK_clusterservices_cluster_id` (`cluster_id`),
CONSTRAINT `FK_clusterservices_cluster_id` FOREIGN KEY (`cluster_id`) REFERENCES `clusters` (`cluster_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
10、permission_roleauthorization(权限与授权关系表)
CREATE TABLE `permission_roleauthorization` (
`permission_id` bigint(20) NOT NULL,-- 验证权限id
`authorization_id` varchar(100) NOT NULL,-- 授权id
PRIMARY KEY (`permission_id`,`authorization_id`),
KEY `FK_permission_roleauth_aid` (`authorization_id`),
CONSTRAINT `FK_permission_roleauth_aid` FOREIGN KEY (`authorization_id`) REFERENCES `roleauthorization` (`authorization_id`),
CONSTRAINT `FK_permission_roleauth_pid` FOREIGN KEY (`permission_id`) REFERENCES `adminpermission` (`permission_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
11、repo_definition(repo库定义表)
CREATE TABLE `repo_definition` (
`id` bigint(20) NOT NULL,
`repo_os_id` bigint(20) DEFAULT NULL,-- repo库操作系统id
`repo_name` varchar(255) NOT NULL,-- repo库名称
`repo_id` varchar(255) NOT NULL,-- repo库id,HDP-3.1/HDP-3.1-GPL/HDP-UTILS-1.1.0.22
`base_url` mediumtext NOT NULL,-- base_url地址
`distribution` mediumtext,
`components` mediumtext,
`unique_repo` tinyint(1) DEFAULT '1',-- 唯一库
`mirrors` mediumtext,
PRIMARY KEY (`id`),
KEY `FK_repo_definition_repo_os_id` (`repo_os_id`),
CONSTRAINT `FK_repo_definition_repo_os_id` FOREIGN KEY (`repo_os_id`) REFERENCES `repo_os` (`id`)-- repo_os_id字段为repo_os表的外键,对应repo_os表的id
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
12、repo_version(repo版本表)
CREATE TABLE `repo_version` (
`repo_version_id` bigint(20) NOT NULL,
`stack_id` bigint(20) NOT NULL,
`version` varchar(255) NOT NULL,
`display_name` varchar(128) NOT NULL,
`repo_type` varchar(255) NOT NULL DEFAULT 'STANDARD',
`hidden` smallint(6) NOT NULL DEFAULT '0',
`resolved` tinyint(1) NOT NULL DEFAULT '0',
`legacy` tinyint(1) NOT NULL DEFAULT '0',
`version_url` varchar(1024) DEFAULT NULL,
`version_xml` mediumtext,
`version_xsd` varchar(512) DEFAULT NULL,
`parent_id` bigint(20) DEFAULT NULL,
PRIMARY KEY (`repo_version_id`),-- 主键 repo版本id repo_version_id
UNIQUE KEY `UQ_repo_version_display_name` (`display_name`),
UNIQUE KEY `UQ_repo_version_stack_id` (`stack_id`,`version`),
CONSTRAINT `FK_repoversion_stack_id` FOREIGN KEY (`stack_id`) REFERENCES `stack` (`stack_id`)-- 外键对应 stack表 的stack_id字段
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
13、roleauthorization(授权字典表)
CREATE TABLE `roleauthorization` (
`authorization_id` varchar(100) NOT NULL,-- 授权id
`authorization_name` varchar(255) NOT NULL,-- 授权名
PRIMARY KEY (`authorization_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
14、serviceconfig(服务配置表)
CREATE TABLE `serviceconfig` (
`service_config_id` bigint(20) NOT NULL,
`cluster_id` bigint(20) NOT NULL,
`service_name` varchar(255) NOT NULL,
`version` bigint(20) NOT NULL,
`create_timestamp` bigint(20) NOT NULL,
`stack_id` bigint(20) NOT NULL,
`user_name` varchar(255) NOT NULL DEFAULT '_db',
`group_id` bigint(20) DEFAULT NULL,
`note` longtext,
PRIMARY KEY (`service_config_id`),
UNIQUE KEY `UQ_scv_service_version` (`cluster_id`,`service_name`,`version`),
KEY `FK_serviceconfig_stack_id` (`stack_id`),
CONSTRAINT `FK_serviceconfig_stack_id` FOREIGN KEY (`stack_id`) REFERENCES `stack` (`stack_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
15、serviceconfigmapping(服务配置关系映射表)
CREATE TABLE `serviceconfigmapping` (
`service_config_id` bigint(20) NOT NULL,
`config_id` bigint(20) NOT NULL,
PRIMARY KEY (`service_config_id`,`config_id`),
KEY `FK_scvm_config` (`config_id`),
CONSTRAINT `FK_scvm_config` FOREIGN KEY (`config_id`) REFERENCES `clusterconfig` (`config_id`),
CONSTRAINT `FK_scvm_scv` FOREIGN KEY (`service_config_id`) REFERENCES `serviceconfig` (`service_config_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
16、servicedesiredstate(服务预期状态表)
CREATE TABLE `servicedesiredstate` (
`cluster_id` bigint(20) NOT NULL,
`desired_host_role_mapping` int(11) NOT NULL,
`desired_repo_version_id` bigint(20) NOT NULL,
`desired_state` varchar(255) NOT NULL,
`service_name` varchar(255) NOT NULL,
`maintenance_state` varchar(32) NOT NULL DEFAULT 'ACTIVE',
`credential_store_enabled` smallint(6) NOT NULL DEFAULT '0',
PRIMARY KEY (`cluster_id`,`service_name`),
KEY `FK_repo_version_id` (`desired_repo_version_id`),
KEY `servicedesiredstateservicename` (`service_name`,`cluster_id`),
CONSTRAINT `FK_repo_version_id` FOREIGN KEY (`desired_repo_version_id`) REFERENCES `repo_version` (`repo_version_id`),
CONSTRAINT `servicedesiredstateservicename` FOREIGN KEY (`service_name`, `cluster_id`) REFERENCES `clusterservices` (`service_name`, `cluster_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
17、stack(stack库表)
CREATE TABLE `stack` (
`stack_id` bigint(20) NOT NULL,
`stack_name` varchar(100) NOT NULL,
`stack_version` varchar(100) NOT NULL,
PRIMARY KEY (`stack_id`),
UNIQUE KEY `UQ_stack` (`stack_name`,`stack_version`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
18、stage(操作记录表)
CREATE TABLE `stage` (
`stage_id` bigint(20) NOT NULL,
`request_id` bigint(20) NOT NULL,
`cluster_id` bigint(20) DEFAULT NULL,
`skippable` smallint(6) NOT NULL DEFAULT '0',
`supports_auto_skip_failure` smallint(6) NOT NULL DEFAULT '0',
`log_info` varchar(255) NOT NULL,
`request_context` varchar(255) DEFAULT NULL,
`command_params` longblob,
`host_params` longblob,
`command_execution_type` varchar(32) NOT NULL DEFAULT 'STAGE',
`status` varchar(255) NOT NULL DEFAULT 'PENDING',
`display_status` varchar(255) NOT NULL DEFAULT 'PENDING',
PRIMARY KEY (`stage_id`,`request_id`),
KEY `idx_stage_request_id` (`request_id`),
CONSTRAINT `FK_stage_request_id` FOREIGN KEY (`request_id`) REFERENCES `request` (`request_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
19、viewinstance(view实例表)
CREATE TABLE `viewinstance` (
`view_instance_id` bigint(20) NOT NULL,
`resource_id` bigint(20) NOT NULL,
`view_name` varchar(100) NOT NULL,
`name` varchar(100) NOT NULL,
`label` varchar(255) DEFAULT NULL,
`description` varchar(2048) DEFAULT NULL,
`visible` char(1) DEFAULT NULL,
`icon` varchar(255) DEFAULT NULL,
`icon64` varchar(255) DEFAULT NULL,
`xml_driven` char(1) DEFAULT NULL,
`alter_names` tinyint(1) NOT NULL DEFAULT '1',
`cluster_handle` bigint(20) DEFAULT NULL,
`cluster_type` varchar(100) NOT NULL DEFAULT 'LOCAL_AMBARI',
`short_url` bigint(20) DEFAULT NULL,
PRIMARY KEY (`view_instance_id`),
UNIQUE KEY `UQ_viewinstance_name` (`view_name`,`name`),
UNIQUE KEY `UQ_viewinstance_name_id` (`view_instance_id`,`view_name`,`name`),
KEY `FK_instance_url_id` (`short_url`),
KEY `FK_viewinstance_resource_id` (`resource_id`),
CONSTRAINT `FK_instance_url_id` FOREIGN KEY (`short_url`) REFERENCES `viewurl` (`url_id`),
CONSTRAINT `FK_viewinst_view_name` FOREIGN KEY (`view_name`) REFERENCES `viewmain` (`view_name`),
CONSTRAINT `FK_viewinstance_resource_id` FOREIGN KEY (`resource_id`) REFERENCES `adminresource` (`resource_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
升级
1、upgrade(升级表)
CREATE TABLE `upgrade` (
`upgrade_id` bigint(20) NOT NULL,
`cluster_id` bigint(20) NOT NULL,
`request_id` bigint(20) NOT NULL,
`direction` varchar(255) NOT NULL DEFAULT 'UPGRADE',
`orchestration` varchar(255) NOT NULL DEFAULT 'STANDARD',
`upgrade_package` varchar(255) NOT NULL,
`upgrade_type` varchar(32) NOT NULL,
`repo_version_id` bigint(20) NOT NULL,
`skip_failures` tinyint(1) NOT NULL DEFAULT '0',
`skip_sc_failures` tinyint(1) NOT NULL DEFAULT '0',
`downgrade_allowed` tinyint(1) NOT NULL DEFAULT '1',
`revert_allowed` tinyint(1) NOT NULL DEFAULT '0',
`suspended` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`upgrade_id`),
KEY `cluster_id` (`cluster_id`),
KEY `request_id` (`request_id`),
KEY `repo_version_id` (`repo_version_id`),
CONSTRAINT `upgrade_ibfk_1` FOREIGN KEY (`cluster_id`) REFERENCES `clusters` (`cluster_id`),
CONSTRAINT `upgrade_ibfk_2` FOREIGN KEY (`request_id`) REFERENCES `request` (`request_id`),
CONSTRAINT `upgrade_ibfk_3` FOREIGN KEY (`repo_version_id`) REFERENCES `repo_version` (`repo_version_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
2、upgrade_group(升级组表)
CREATE TABLE `upgrade_group` (
`upgrade_group_id` bigint(20) NOT NULL,
`upgrade_id` bigint(20) NOT NULL,
`group_name` varchar(255) NOT NULL DEFAULT '',
`group_title` varchar(1024) NOT NULL DEFAULT '',
PRIMARY KEY (`upgrade_group_id`),
KEY `upgrade_id` (`upgrade_id`),
CONSTRAINT `upgrade_group_ibfk_1` FOREIGN KEY (`upgrade_id`) REFERENCES `upgrade` (`upgrade_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
3、upgrade_history(升级历史表)
CREATE TABLE `upgrade_history` (
`id` bigint(20) NOT NULL,
`upgrade_id` bigint(20) NOT NULL,
`service_name` varchar(255) NOT NULL,
`component_name` varchar(255) NOT NULL,
`from_repo_version_id` bigint(20) NOT NULL,
`target_repo_version_id` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `UQ_upgrade_hist` (`upgrade_id`,`component_name`,`service_name`),
KEY `FK_upgrade_hist_from_repo` (`from_repo_version_id`),
KEY `FK_upgrade_hist_target_repo` (`target_repo_version_id`),
CONSTRAINT `FK_upgrade_hist_from_repo` FOREIGN KEY (`from_repo_version_id`) REFERENCES `repo_version` (`repo_version_id`),
CONSTRAINT `FK_upgrade_hist_target_repo` FOREIGN KEY (`target_repo_version_id`) REFERENCES `repo_version` (`repo_version_id`),
CONSTRAINT `FK_upgrade_hist_upgrade_id` FOREIGN KEY (`upgrade_id`) REFERENCES `upgrade` (`upgrade_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
4、upgrade_item(升级项目列表)
CREATE TABLE `upgrade_item` (
`upgrade_item_id` bigint(20) NOT NULL,
`upgrade_group_id` bigint(20) NOT NULL,
`stage_id` bigint(20) NOT NULL,
`state` varchar(255) NOT NULL DEFAULT 'NONE',
`hosts` text,
`tasks` text,
`item_text` text,
PRIMARY KEY (`upgrade_item_id`),
KEY `upgrade_group_id` (`upgrade_group_id`),
CONSTRAINT `upgrade_item_ibfk_1` FOREIGN KEY (`upgrade_group_id`) REFERENCES `upgrade_group` (`upgrade_group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;