45 lines
2.1 KiB
SQL
45 lines
2.1 KiB
SQL
-- Phase 4.1: 应用市场安检 + 版本化 + 绿标
|
|
-- 幂等:仅当列/表不存在时才创建(run.sh 每次重启重跑全部迁移)
|
|
|
|
SET @db = 'aiflow';
|
|
SET @tbl = 'market_apps';
|
|
|
|
-- version
|
|
SET @col = 'version';
|
|
SET @exists = (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema=@db AND table_name=@tbl AND column_name=@col);
|
|
SET @sql = IF(@exists=0, "ALTER TABLE market_apps ADD COLUMN version VARCHAR(20) NOT NULL DEFAULT '1.0.0' COMMENT '应用版本号(4.1)'", 'SELECT 1');
|
|
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
|
|
|
-- security_scan
|
|
SET @col = 'security_scan';
|
|
SET @exists = (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema=@db AND table_name=@tbl AND column_name=@col);
|
|
SET @sql = IF(@exists=0, 'ALTER TABLE market_apps ADD COLUMN security_scan JSON NULL COMMENT ''安全扫描结果(4.1)''', 'SELECT 1');
|
|
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
|
|
|
-- dependencies
|
|
SET @col = 'dependencies';
|
|
SET @exists = (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema=@db AND table_name=@tbl AND column_name=@col);
|
|
SET @sql = IF(@exists=0, 'ALTER TABLE market_apps ADD COLUMN dependencies JSON NULL COMMENT ''依赖声明(4.1)''', 'SELECT 1');
|
|
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
|
|
|
-- verified
|
|
SET @col = 'verified';
|
|
SET @exists = (SELECT COUNT(*) FROM information_schema.columns WHERE table_schema=@db AND table_name=@tbl AND column_name=@col);
|
|
SET @sql = IF(@exists=0, 'ALTER TABLE market_apps ADD COLUMN verified TINYINT(1) NOT NULL DEFAULT 0 COMMENT ''绿标/官方安检通过(4.1)''', 'SELECT 1');
|
|
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
|
|
|
-- 版本快照表
|
|
CREATE TABLE IF NOT EXISTS market_app_versions (
|
|
id VARCHAR(36) NOT NULL,
|
|
app_id VARCHAR(36) NOT NULL,
|
|
version VARCHAR(20) NOT NULL,
|
|
type VARCHAR(10) NOT NULL,
|
|
config JSON NULL,
|
|
security_scan JSON NULL,
|
|
dependencies JSON NULL,
|
|
created_by VARCHAR(36) NULL,
|
|
created_at DATETIME NULL,
|
|
PRIMARY KEY (id),
|
|
KEY idx_mav_app (app_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='应用版本快照(4.1)';
|