支持设备定时定位上报与OTA通道选择
This commit is contained in:
@@ -151,6 +151,11 @@ CREATE TABLE IF NOT EXISTS `device_firmware_update` (
|
||||
`serial_number` VARCHAR(64) NOT NULL,
|
||||
`mac_address` VARCHAR(512) NULL,
|
||||
`firmware_version` VARCHAR(64) NOT NULL,
|
||||
`ota_channel` VARCHAR(32) NULL,
|
||||
`target_version` VARCHAR(64) NULL,
|
||||
`firmware_url` TEXT NULL,
|
||||
`firmware_id` INT NULL,
|
||||
`source` VARCHAR(32) NULL,
|
||||
`update_status` VARCHAR(32) NOT NULL DEFAULT 'success',
|
||||
`progress` FLOAT NULL DEFAULT 0.0,
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
@@ -159,6 +164,38 @@ CREATE TABLE IF NOT EXISTS `device_firmware_update` (
|
||||
UNIQUE INDEX `device_id_UNIQUE` (`device_id` ASC)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `device_ota_channels` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`channel_key` VARCHAR(32) NOT NULL,
|
||||
`name` VARCHAR(64) NOT NULL,
|
||||
`device_type` TINYINT NULL,
|
||||
`enabled` TINYINT(1) NOT NULL DEFAULT 1,
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uq_device_ota_channels_key` (`channel_key`),
|
||||
KEY `idx_device_ota_channels_device_type` (`device_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `device_ota_firmwares` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`channel_key` VARCHAR(32) NOT NULL,
|
||||
`version` VARCHAR(64) NOT NULL,
|
||||
`firmware_url` TEXT NOT NULL,
|
||||
`checksum` VARCHAR(128) NULL,
|
||||
`file_size` BIGINT NULL,
|
||||
`release_status` VARCHAR(32) NOT NULL DEFAULT 'draft',
|
||||
`release_channel` VARCHAR(32) NOT NULL DEFAULT 'stable',
|
||||
`is_latest` TINYINT(1) NOT NULL DEFAULT 0,
|
||||
`notes` TEXT NULL,
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`published_at` DATETIME NULL,
|
||||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uq_device_ota_firmware_channel_version` (`channel_key`, `version`),
|
||||
KEY `idx_device_ota_firmware_latest` (`channel_key`, `release_status`, `is_latest`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `system_config` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`config_key` VARCHAR(128) NOT NULL,
|
||||
@@ -180,6 +217,13 @@ VALUES
|
||||
('update_firmware_url', 'https://example.com/firmware/latest.bin', '固件更新URL')
|
||||
ON DUPLICATE KEY UPDATE `config_value` = `config_value`;
|
||||
|
||||
INSERT INTO `device_ota_channels` (`channel_key`, `name`, `device_type`, `enabled`)
|
||||
VALUES
|
||||
('legacy', 'Legacy devices', NULL, 1),
|
||||
('no_gps', 'NFC without GPS', 1, 1),
|
||||
('gps', 'NFC with GPS', 2, 1)
|
||||
ON DUPLICATE KEY UPDATE `channel_key` = `channel_key`;
|
||||
|
||||
INSERT INTO `roles` (`role_key`, `name`, `description`, `content`, `default_language`, `enabled`)
|
||||
VALUES (
|
||||
'assistant',
|
||||
@@ -435,6 +479,9 @@ CREATE TABLE IF NOT EXISTS `device_settings` (
|
||||
`power` TINYINT UNSIGNED NULL,
|
||||
`signal` TINYINT UNSIGNED NULL,
|
||||
`version` VARCHAR(64) NULL,
|
||||
`imei` VARCHAR(64) NULL,
|
||||
`device_type` TINYINT NULL,
|
||||
`ota_channel` VARCHAR(32) NULL,
|
||||
`disable_weekdays` VARCHAR(32) NULL,
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
|
||||
Reference in New Issue
Block a user