初始提交: Qihu-AIFlow v2.0.1 完整项目
- 前端 React+TypeScript (源码+构建产物) - 后端 Python FastAPI - 数据库迁移 001-015 - Docker部署配置 - 微信ClawBot API频道绑定 - 项目文档 README.md
This commit is contained in:
commit
78ff261b5a
199 files changed
+69126
No files matched your search
@@ -0,0 +1,122 @@
|
||||
-- AI自进化引擎 v2 数据库变更
|
||||
-- Qihu-AIFlow v2.0.0
|
||||
-- 使用存储过程进行幂等的列添加,确保可重复执行
|
||||
|
||||
DELIMITER $$
|
||||
|
||||
-- ============================================================
|
||||
-- 1. 现有表新增字段(幂等操作)
|
||||
-- ============================================================
|
||||
|
||||
-- evolution_trajectories 新增字段
|
||||
CREATE PROCEDURE IF NOT EXISTS add_col_evtraj()
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'evolution_trajectories' AND COLUMN_NAME = 'error_msg') THEN
|
||||
ALTER TABLE `evolution_trajectories` ADD COLUMN `error_msg` VARCHAR(500) DEFAULT NULL COMMENT '轨迹处理失败的错误信息';
|
||||
END IF;
|
||||
IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'evolution_trajectories' AND COLUMN_NAME = 'retry_count') THEN
|
||||
ALTER TABLE `evolution_trajectories` ADD COLUMN `retry_count` INT DEFAULT 0 COMMENT '失败重试次数';
|
||||
END IF;
|
||||
IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'evolution_trajectories' AND COLUMN_NAME = 'tasks_extracted') THEN
|
||||
ALTER TABLE `evolution_trajectories` ADD COLUMN `tasks_extracted` INT DEFAULT 0 COMMENT '拆分的AtomTask数量';
|
||||
END IF;
|
||||
END$$
|
||||
|
||||
-- messages 新增字段
|
||||
CREATE PROCEDURE IF NOT EXISTS add_col_msgs()
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'messages' AND COLUMN_NAME = 'used_skills') THEN
|
||||
ALTER TABLE `messages` ADD COLUMN `used_skills` JSON DEFAULT NULL COMMENT '该轮对话调用的进化技能名列表';
|
||||
END IF;
|
||||
END$$
|
||||
|
||||
-- user_evolution_config 新增字段
|
||||
CREATE PROCEDURE IF NOT EXISTS add_col_uec()
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'user_evolution_config' AND COLUMN_NAME = 'watcher_error') THEN
|
||||
ALTER TABLE `user_evolution_config` ADD COLUMN `watcher_error` VARCHAR(500) DEFAULT NULL COMMENT 'watcher异常信息';
|
||||
END IF;
|
||||
IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'user_evolution_config' AND COLUMN_NAME = 'pipeline_status') THEN
|
||||
ALTER TABLE `user_evolution_config` ADD COLUMN `pipeline_status` VARCHAR(20) DEFAULT 'idle' COMMENT '流水线状态: running/idle/error';
|
||||
END IF;
|
||||
IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'user_evolution_config' AND COLUMN_NAME = 'pipeline_processed') THEN
|
||||
ALTER TABLE `user_evolution_config` ADD COLUMN `pipeline_processed` INT DEFAULT 0 COMMENT '已处理轨迹数';
|
||||
END IF;
|
||||
END$$
|
||||
|
||||
DELIMITER ;
|
||||
|
||||
-- 执行列添加
|
||||
CALL add_col_evtraj();
|
||||
CALL add_col_msgs();
|
||||
CALL add_col_uec();
|
||||
|
||||
-- 清理存储过程
|
||||
DROP PROCEDURE IF EXISTS add_col_evtraj;
|
||||
DROP PROCEDURE IF EXISTS add_col_msgs;
|
||||
DROP PROCEDURE IF EXISTS add_col_uec;
|
||||
|
||||
-- ============================================================
|
||||
-- 2. 新增表: skill_versions (技能版本历史, 用于回滚)
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS `skill_versions` (
|
||||
`id` VARCHAR(36) NOT NULL PRIMARY KEY,
|
||||
`user_id` VARCHAR(36) NOT NULL,
|
||||
`skill_name` VARCHAR(200) NOT NULL,
|
||||
`version` INT NOT NULL DEFAULT 1,
|
||||
`skill_md_content` LONGTEXT COMMENT '该版本的SKILL.md完整内容',
|
||||
`git_commit_sha` VARCHAR(40) COMMENT 'Git提交SHA',
|
||||
`description` TEXT COMMENT '版本变更说明',
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
INDEX `idx_sv_user_skill` (`user_id`, `skill_name`),
|
||||
INDEX `idx_sv_version` (`version`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- ============================================================
|
||||
-- 3. 新增表: evolution_reports (进化报告)
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS `evolution_reports` (
|
||||
`id` VARCHAR(36) NOT NULL PRIMARY KEY,
|
||||
`user_id` VARCHAR(36) NOT NULL,
|
||||
`report_type` VARCHAR(20) NOT NULL COMMENT 'weekly / monthly',
|
||||
`period_start` DATE NOT NULL COMMENT '报告周期开始日期',
|
||||
`period_end` DATE NOT NULL COMMENT '报告周期结束日期',
|
||||
`report_data` JSON COMMENT '报告详细数据(JSON)',
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
INDEX `idx_er_user_type` (`user_id`, `report_type`),
|
||||
INDEX `idx_er_period` (`period_start`, `period_end`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- ============================================================
|
||||
-- 4. 新增表: skill_publish_records (技能市场发布记录)
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS `skill_publish_records` (
|
||||
`id` VARCHAR(36) NOT NULL PRIMARY KEY,
|
||||
`skill_id` VARCHAR(36) NOT NULL COMMENT '关联evolution_skills.id',
|
||||
`skill_name` VARCHAR(200) NOT NULL,
|
||||
`user_id` VARCHAR(36) NOT NULL,
|
||||
`market_app_id` VARCHAR(36) COMMENT '关联market_apps.id',
|
||||
`price` DECIMAL(10, 2) DEFAULT 0.00,
|
||||
`market_description` TEXT,
|
||||
`status` VARCHAR(20) NOT NULL DEFAULT 'published' COMMENT 'published/unpublished',
|
||||
`published_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
INDEX `idx_spr_skill_id` (`skill_id`),
|
||||
INDEX `idx_spr_user_id` (`user_id`),
|
||||
INDEX `idx_spr_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- ============================================================
|
||||
-- 5. 新增表: team_shared_skills (团队共享技能)
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS `team_shared_skills` (
|
||||
`id` VARCHAR(36) NOT NULL PRIMARY KEY,
|
||||
`team_id` VARCHAR(36) NOT NULL,
|
||||
`skill_id` VARCHAR(36) NOT NULL COMMENT '关联evolution_skills.id',
|
||||
`skill_name` VARCHAR(200) NOT NULL,
|
||||
`shared_by` VARCHAR(36) NOT NULL COMMENT '分享者user_id',
|
||||
`shared_by_name` VARCHAR(100) COMMENT '分享者昵称',
|
||||
`is_public` TINYINT(1) DEFAULT 1 COMMENT '团队内是否可见',
|
||||
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY `uk_tss_team_skill` (`team_id`, `skill_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
Reference in new issue
Block a user