- models/ 重建为正确表定义格式(summary+fields+indexes),覆盖全部 11 个表 修正原 models/ 误放 CRUD 格式副本(缺 summary)导致 json2ddl 100% 失败被静默忽略 - json/ 6 个 CRUD 定义 tblname 加前缀 + 文件改名 - 129 处 SQL/sor 表名加 rag_ 前缀(URL 路径 knowledge_bases_list 保持不变) - 新增 init/migrate_rag_prefix.sql 幂等 RENAME TABLE 迁移
55 lines
2.1 KiB
SQL
55 lines
2.1 KiB
SQL
-- rag 模块表名加 rag_ 前缀(模块跨应用复用,避免与业务表冲突)
|
|
-- 幂等:仅当旧表存在且新表不存在时才 RENAME。
|
|
-- 用法: mysql -h <host> -u<user> -p<pwd> <db> < migrate_rag_prefix.sql
|
|
|
|
DELIMITER $$
|
|
DROP PROCEDURE IF EXISTS rag_rename_tables$$
|
|
CREATE PROCEDURE rag_rename_tables()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE oldname VARCHAR(64);
|
|
DECLARE cur CURSOR FOR
|
|
SELECT t FROM (
|
|
SELECT 'knowledge_bases' AS t UNION ALL
|
|
SELECT 'documents' UNION ALL
|
|
SELECT 'document_chunks' UNION ALL
|
|
SELECT 'tags' UNION ALL
|
|
SELECT 'media_tags' UNION ALL
|
|
SELECT 'entities' UNION ALL
|
|
SELECT 'entity_relations' UNION ALL
|
|
SELECT 'engine_configs' UNION ALL
|
|
SELECT 'subscriptions' UNION ALL
|
|
SELECT 'org_storage_limits' UNION ALL
|
|
SELECT 'usage_logs'
|
|
) x;
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
|
|
|
|
OPEN cur;
|
|
read_loop: LOOP
|
|
FETCH cur INTO oldname;
|
|
IF done THEN LEAVE read_loop; END IF;
|
|
|
|
SET @has_old = (SELECT COUNT(*) FROM information_schema.TABLES
|
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = oldname);
|
|
SET @has_new = (SELECT COUNT(*) FROM information_schema.TABLES
|
|
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = CONCAT('rag_', oldname));
|
|
|
|
IF @has_old = 1 AND @has_new = 0 THEN
|
|
SET @sql = CONCAT('RENAME TABLE `', oldname, '` TO `rag_', oldname, '`');
|
|
PREPARE st FROM @sql;
|
|
EXECUTE st;
|
|
DEALLOCATE PREPARE st;
|
|
SELECT CONCAT('RENAMED: ', oldname, ' -> rag_', oldname) AS result;
|
|
ELSEIF @has_new = 1 THEN
|
|
SELECT CONCAT('SKIP (already migrated): rag_', oldname) AS result;
|
|
ELSE
|
|
SELECT CONCAT('SKIP (no such table): ', oldname) AS result;
|
|
END IF;
|
|
END LOOP;
|
|
CLOSE cur;
|
|
END$$
|
|
DELIMITER ;
|
|
|
|
CALL rag_rename_tables();
|
|
DROP PROCEDURE rag_rename_tables;
|