20260317_create_client_app_versions.sql 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. -- 客户端版本发布表
  2. CREATE TABLE IF NOT EXISTS client_app_versions (
  3. id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
  4. platform VARCHAR(20) NOT NULL DEFAULT 'windows' COMMENT '平台: windows/macos/linux',
  5. channel VARCHAR(20) NOT NULL DEFAULT 'stable' COMMENT '发布通道: stable/beta',
  6. version VARCHAR(50) NOT NULL COMMENT '版本号,如 1.2.0',
  7. build_number INT NULL COMMENT '构建号',
  8. release_title VARCHAR(120) NULL COMMENT '发布标题',
  9. release_notes_html TEXT NULL COMMENT '富文本更新日志',
  10. download_url VARCHAR(500) NULL COMMENT '下载地址',
  11. download_hash VARCHAR(128) NULL COMMENT '下载包hash',
  12. is_force_update TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否强制更新',
  13. min_supported_version VARCHAR(50) NULL COMMENT '最低支持版本',
  14. status VARCHAR(20) NOT NULL DEFAULT 'draft' COMMENT '状态: draft/published/offline',
  15. published_at DATETIME NULL COMMENT '发布时间',
  16. created_by VARCHAR(64) NULL COMMENT '创建人',
  17. updated_by VARCHAR(64) NULL COMMENT '更新人',
  18. is_deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除: 0-否, 1-是',
  19. created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  20. updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  21. UNIQUE KEY uk_client_app_version (platform, channel, version),
  22. KEY idx_client_app_version_query (platform, channel, status, is_deleted, published_at),
  23. KEY idx_client_app_version_min_supported (platform, channel, min_supported_version, is_deleted)
  24. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户端版本发布表';
  25. -- 默认轮询间隔配置(登录页版本检查)
  26. INSERT INTO system_config (
  27. config_key, config_value, config_type, app_name, description, is_system, is_editable, is_deleted
  28. )
  29. SELECT
  30. 'client_version_check_interval_seconds',
  31. '60',
  32. 'int',
  33. 'backend-client',
  34. '客户端版本检查轮询间隔(秒)',
  35. 1,
  36. 1,
  37. 0
  38. WHERE NOT EXISTS (
  39. SELECT 1 FROM system_config
  40. WHERE config_key = 'client_version_check_interval_seconds'
  41. AND app_name LIKE '%backend-client%'
  42. AND is_deleted = 0
  43. );