diff --git a/migrations/mig_g4_distribution.sql b/migrations/mig_g4_distribution.sql index 8412047..d1e378e 100644 --- a/migrations/mig_g4_distribution.sql +++ b/migrations/mig_g4_distribution.sql @@ -56,7 +56,7 @@ CREATE TABLE IF NOT EXISTS `distribution_licenses` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- Insert seed data: sample distributions -INSERT INTO `distributions` (`id`, `name`, `description`, `brand_name`, `brand_color`, `provider`, `model`, `features`, `status`) VALUES +INSERT IGNORE INTO `distributions` (`id`, `name`, `description`, `brand_name`, `brand_color`, `provider`, `model`, `features`, `status`) VALUES ('distro-starter', 'Starter Edition', '基础版发行包,适合个人开发者和小团队', 'AI Starter', '#6366f1', 'siliconflow', 'deepseek-ai/DeepSeek-V4-Flash', '["chat", "code_exec"]', 'active'), ('distro-enterprise', 'Enterprise Edition', '企业版发行包,包含完整 MCP 生态 + Agent 协作', 'AI Enterprise', '#f59e0b', 'siliconflow', 'deepseek-ai/DeepSeek-V4-Flash', '["chat", "code_exec", "knowledge_search", "agent_collab"]', 'active'), ('distro-devops', 'DevOps Edition', 'DevOps 专用发行包,CI/CD + 代码审查 + 部署', 'AI DevOps', '#10b981', 'siliconflow', 'deepseek-ai/DeepSeek-V4-Flash', '["chat", "code_exec", "automation", "webhook"]', 'active'); diff --git a/migrations/mig_g5_privacy.sql b/migrations/mig_g5_privacy.sql index ac0fea6..1b7c8a1 100644 --- a/migrations/mig_g5_privacy.sql +++ b/migrations/mig_g5_privacy.sql @@ -84,6 +84,11 @@ CREATE TABLE IF NOT EXISTS usage_reports ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- 5. Add privacy_mode to distributions table -ALTER TABLE distributions - ADD COLUMN IF NOT EXISTS privacy_mode ENUM('local', 'cloud', 'hybrid') NOT NULL DEFAULT 'cloud' - COMMENT 'Deployment mode for distribution' AFTER status; +-- MariaDB 11.8 不支持 ADD COLUMN IF NOT EXISTS 语法,改用 information_schema 预检 + 动态 PREPARE 实现幂等 +SET @exist_pm := (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'aiflow' AND TABLE_NAME = 'distributions' AND COLUMN_NAME = 'privacy_mode'); +SET @sql_pm := IF(@exist_pm = 0, + "ALTER TABLE distributions ADD COLUMN privacy_mode ENUM('local', 'cloud', 'hybrid') NOT NULL DEFAULT 'cloud' COMMENT 'Deployment mode for distribution' AFTER status", + 'SELECT 1'); +PREPARE stmt_pm FROM @sql_pm; +EXECUTE stmt_pm; +DEALLOCATE PREPARE stmt_pm;