- 修改升级流程,从同时触发所有主机改为逐个主机顺序触发和轮询 - 添加 session_id 字段到 upgrade_log 表以区分不同主机的升级会话 - 引入 upgradePollTimeoutSeconds 配置项控制单个主机轮询超时时间 - 添加数据库迁移脚本以更新表结构和主键约束 - 实现运行组状态跟踪,防止同一组并发执行 - 改进错误处理和日志记录,为每个主机独立记录升级结果
27 lines
759 B
SQL
27 lines
759 B
SQL
-- Create database (run manually or via script if user has permissions)
|
|
-- CREATE DATABASE test_upgrade;
|
|
|
|
-- Connect to test_upgrade before running the following:
|
|
|
|
CREATE TABLE IF NOT EXISTS upgrade_log (
|
|
uuid UUID NOT NULL,
|
|
session_id UUID,
|
|
start_time TIMESTAMP NOT NULL,
|
|
roomtype_id INTEGER NOT NULL,
|
|
host_str TEXT NOT NULL,
|
|
filename TEXT NOT NULL,
|
|
status TEXT,
|
|
end_time TIMESTAMP,
|
|
file_type TEXT,
|
|
config_version TEXT,
|
|
firmware_version TEXT,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS upgrade_state (
|
|
state_key TEXT PRIMARY KEY,
|
|
current_roomtype_index INTEGER DEFAULT 0,
|
|
execution_count INTEGER DEFAULT 0,
|
|
last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|