Files
1818web-hoduan/V4__add_image_fields_to_ai_task_FIXED.sql
2025-11-14 17:41:15 +08:00

95 lines
2.8 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================================
-- V4: 为AI任务表添加图片参数支持修复版
-- 描述: 支持图生视频功能,允许用户上传参考图片
-- 作者: 1818AI
-- 日期: 2025-10-20
-- ============================================================
-- 指定数据库
USE `1818ai`;
-- 1. 添加 image_url 字段(如果不存在)
SET @col_exists = (
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ai_task'
AND COLUMN_NAME = 'image_url'
);
SET @sql = IF(@col_exists = 0,
'ALTER TABLE `ai_task` ADD COLUMN `image_url` VARCHAR(500) NULL COMMENT ''参考图片URL用于图生视频'' AFTER `prompt`',
'SELECT ''Column image_url already exists'' AS info'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 2. 添加 image_base64 字段(如果不存在)
SET @col_exists = (
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ai_task'
AND COLUMN_NAME = 'image_base64'
);
SET @sql = IF(@col_exists = 0,
'ALTER TABLE `ai_task` ADD COLUMN `image_base64` TEXT NULL COMMENT ''参考图片Base64编码用于图生视频'' AFTER `image_url`',
'SELECT ''Column image_base64 already exists'' AS info'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 3. 添加 aspect_ratio 字段(如果不存在)
SET @col_exists = (
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ai_task'
AND COLUMN_NAME = 'aspect_ratio'
);
SET @sql = IF(@col_exists = 0,
'ALTER TABLE `ai_task` ADD COLUMN `aspect_ratio` VARCHAR(10) NULL COMMENT ''图片宽高比如2:3, 3:2, 1:1'' AFTER `image_base64`',
'SELECT ''Column aspect_ratio already exists'' AS info'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 4. 添加索引(如果不存在)
SET @index_exists = (
SELECT COUNT(*)
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ai_task'
AND INDEX_NAME = 'idx_task_type'
);
SET @sql = IF(@index_exists = 0,
'CREATE INDEX `idx_task_type` ON `ai_task`(`task_type`)',
'SELECT ''Index idx_task_type already exists'' AS info'
);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 5. 验证字段是否添加成功
SELECT
COLUMN_NAME,
COLUMN_TYPE,
IS_NULLABLE,
COLUMN_COMMENT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ai_task'
AND COLUMN_NAME IN ('image_url', 'image_base64', 'aspect_ratio')
ORDER BY ORDINAL_POSITION;
-- ============================================================
-- V4脚本结束
-- ============================================================