fix(aihr): recover stalled media processing
This commit is contained in:
@@ -199,6 +199,7 @@ CREATE TABLE IF NOT EXISTS `aihr_knowledge_upload_item` (
|
||||
`category` varchar(100) DEFAULT '' COMMENT '目标分类',
|
||||
`space_codes_json` json DEFAULT NULL COMMENT '目标知识空间编码数组',
|
||||
`staging_path` varchar(500) NOT NULL COMMENT '暂存文件路径',
|
||||
`source_attach_id` bigint DEFAULT NULL COMMENT '从既有附件重新解析时的附件ID',
|
||||
`status` tinyint NOT NULL DEFAULT 0 COMMENT '0待处理 1处理中 2完成 3失败',
|
||||
`error` varchar(500) DEFAULT NULL COMMENT '失败原因',
|
||||
`doc_id` varchar(80) DEFAULT NULL COMMENT '入库文档ID',
|
||||
@@ -207,7 +208,8 @@ CREATE TABLE IF NOT EXISTS `aihr_knowledge_upload_item` (
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_aihr_upload_item_batch` (`tenant_id`, `batch_id`, `id`),
|
||||
KEY `idx_aihr_upload_item_status` (`tenant_id`, `status`, `update_time`)
|
||||
KEY `idx_aihr_upload_item_status` (`tenant_id`, `status`, `update_time`),
|
||||
KEY `idx_aihr_upload_item_source` (`tenant_id`, `source_attach_id`, `id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='知识库批量上传队列';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `aihr_knowledge_space_grant` (
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
-- 资料处理媒体重试:记录从既有知识附件重新解析的来源,支持直接从 OSS 原件重新入队。
|
||||
-- 可重复执行;依赖 aihr_knowledge_upload_item。
|
||||
|
||||
SET @has_source_attach_id := (
|
||||
SELECT COUNT(*) FROM information_schema.columns
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'aihr_knowledge_upload_item'
|
||||
AND column_name = 'source_attach_id'
|
||||
);
|
||||
SET @media_reprocess_ddl := IF(
|
||||
@has_source_attach_id = 0,
|
||||
'ALTER TABLE aihr_knowledge_upload_item ADD COLUMN source_attach_id bigint DEFAULT NULL COMMENT ''从既有附件重新解析时的附件ID'' AFTER staging_path',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE media_reprocess_stmt FROM @media_reprocess_ddl;
|
||||
EXECUTE media_reprocess_stmt;
|
||||
DEALLOCATE PREPARE media_reprocess_stmt;
|
||||
|
||||
SET @has_media_source_index := (
|
||||
SELECT COUNT(*) FROM information_schema.statistics
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = 'aihr_knowledge_upload_item'
|
||||
AND index_name = 'idx_aihr_upload_item_source'
|
||||
);
|
||||
SET @media_reprocess_ddl := IF(
|
||||
@has_media_source_index = 0,
|
||||
'ALTER TABLE aihr_knowledge_upload_item ADD KEY idx_aihr_upload_item_source (tenant_id, source_attach_id, id)',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE media_reprocess_stmt FROM @media_reprocess_ddl;
|
||||
EXECUTE media_reprocess_stmt;
|
||||
DEALLOCATE PREPARE media_reprocess_stmt;
|
||||
|
||||
SET @has_source_attach_id := NULL;
|
||||
SET @has_media_source_index := NULL;
|
||||
SET @media_reprocess_ddl := NULL;
|
||||
Reference in New Issue
Block a user