CMVR-IOT/sql/resource_center_v1.sql

151 lines
6.0 KiB
MySQL
Raw Normal View History

-- Resource center foundation. Safe to run repeatedly on the isolated development database.
CREATE TABLE IF NOT EXISTS iot_robot (
id varchar(64) NOT NULL,
robot_id varchar(128) NOT NULL,
robot_code varchar(128) DEFAULT NULL,
robot_name varchar(255) DEFAULT NULL,
robot_model varchar(128) DEFAULT NULL,
robot_type varchar(64) DEFAULT NULL,
ip_address varchar(128) DEFAULT NULL,
port bigint DEFAULT NULL,
active_map_id varchar(64) DEFAULT NULL,
runtime_status varchar(32) DEFAULT NULL,
battery_level int DEFAULT NULL,
current_position text,
connect_status varchar(16) DEFAULT NULL,
quic_node_id varchar(128) DEFAULT NULL,
quic_session_id varchar(128) DEFAULT NULL,
quic_boot_id varchar(128) DEFAULT NULL,
observed_ip varchar(128) DEFAULT NULL,
software_version varchar(128) DEFAULT NULL,
last_heartbeat_time datetime DEFAULT NULL,
archived_status varchar(16) DEFAULT '0',
create_by varchar(64) DEFAULT NULL,
create_time datetime DEFAULT NULL,
update_by varchar(64) DEFAULT NULL,
update_time datetime DEFAULT NULL,
remark varchar(500) DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE KEY uk_iot_robot_robot_id (robot_id),
KEY idx_iot_robot_connect_status (connect_status),
KEY idx_iot_robot_active_map (active_map_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Platform robots';
CREATE TABLE IF NOT EXISTS iot_device (
id varchar(64) NOT NULL,
robot_id varchar(128) NOT NULL,
device_id varchar(128) NOT NULL,
device_name varchar(255) DEFAULT NULL,
device_kind int DEFAULT NULL,
device_type varchar(64) DEFAULT NULL,
device_role varchar(128) DEFAULT NULL,
device_index int DEFAULT NULL,
terminal_id varchar(64) DEFAULT NULL,
enabled varchar(16) DEFAULT '1',
manager_state int DEFAULT NULL,
health_status int DEFAULT NULL,
online_status varchar(16) DEFAULT NULL,
has_error varchar(16) DEFAULT NULL,
error_message varchar(1000) DEFAULT NULL,
status_updated_time datetime DEFAULT NULL,
last_seen_time datetime DEFAULT NULL,
offline_time datetime DEFAULT NULL,
create_by varchar(64) DEFAULT NULL,
create_time datetime DEFAULT NULL,
update_by varchar(64) DEFAULT NULL,
update_time datetime DEFAULT NULL,
remark varchar(500) DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE KEY uk_iot_device_identity (robot_id, device_id),
KEY idx_iot_device_robot (robot_id),
KEY idx_iot_device_kind_status (device_kind, online_status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Platform robot devices';
CREATE TABLE IF NOT EXISTS iot_terminal (
id varchar(64) NOT NULL,
terminal_code varchar(128) NOT NULL,
terminal_name varchar(255) DEFAULT NULL,
ip_address varchar(128) DEFAULT NULL,
port bigint DEFAULT NULL,
software_version varchar(128) DEFAULT NULL,
connect_status varchar(16) DEFAULT NULL,
last_heartbeat_time datetime DEFAULT NULL,
status varchar(16) DEFAULT NULL,
create_by varchar(64) DEFAULT NULL,
create_time datetime DEFAULT NULL,
update_by varchar(64) DEFAULT NULL,
update_time datetime DEFAULT NULL,
remark varchar(500) DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE KEY uk_iot_terminal_code (terminal_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Edge terminals';
CREATE TABLE IF NOT EXISTS iot_robot_terminal (
id varchar(64) NOT NULL,
robot_id varchar(128) NOT NULL,
terminal_id varchar(64) NOT NULL,
active varchar(16) DEFAULT '1',
bind_time datetime DEFAULT NULL,
unbind_time datetime DEFAULT NULL,
create_time datetime DEFAULT NULL,
update_time datetime DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE KEY uk_iot_robot_terminal (robot_id, terminal_id),
KEY idx_iot_robot_terminal_active (robot_id, active)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Robot terminal bindings';
CREATE TABLE IF NOT EXISTS iot_map (
id varchar(64) NOT NULL,
map_name varchar(255) NOT NULL,
map_version varchar(64) DEFAULT NULL,
map_type varchar(64) DEFAULT NULL,
coordinate_system varchar(128) DEFAULT NULL,
source_type varchar(32) DEFAULT NULL,
source_robot_id varchar(128) DEFAULT NULL,
source_map_name varchar(255) DEFAULT NULL,
map_file_path varchar(1000) DEFAULT NULL,
status varchar(16) DEFAULT '0',
map_desc varchar(1000) DEFAULT NULL,
create_by varchar(64) DEFAULT NULL,
create_time datetime DEFAULT NULL,
update_by varchar(64) DEFAULT NULL,
update_time datetime DEFAULT NULL,
remark varchar(500) DEFAULT NULL,
PRIMARY KEY (id),
KEY idx_iot_map_source_robot (source_robot_id),
KEY idx_iot_map_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Platform maps';
SET @source_map_name_exists = (
SELECT COUNT(*) FROM information_schema.columns
WHERE table_schema = DATABASE() AND table_name = 'iot_map' AND column_name = 'source_map_name'
);
SET @source_map_name_sql = IF(
@source_map_name_exists = 0,
'ALTER TABLE iot_map ADD COLUMN source_map_name varchar(255) DEFAULT NULL AFTER source_robot_id',
'SELECT 1'
);
PREPARE source_map_name_stmt FROM @source_map_name_sql;
EXECUTE source_map_name_stmt;
DEALLOCATE PREPARE source_map_name_stmt;
CREATE TABLE IF NOT EXISTS iot_robot_map (
id varchar(64) NOT NULL,
robot_id varchar(128) NOT NULL,
map_id varchar(64) NOT NULL,
enabled varchar(16) DEFAULT '1',
is_default varchar(16) DEFAULT '0',
loaded_status varchar(32) DEFAULT 'NOT_LOADED',
compatibility_status varchar(32) DEFAULT 'UNKNOWN',
last_loaded_time datetime DEFAULT NULL,
remark varchar(500) DEFAULT NULL,
create_by varchar(64) DEFAULT NULL,
create_time datetime DEFAULT NULL,
update_by varchar(64) DEFAULT NULL,
update_time datetime DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE KEY uk_iot_robot_map (robot_id, map_id),
KEY idx_iot_robot_map_default (robot_id, is_default)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Robot map bindings';