221 lines
8.2 KiB
SQL
221 lines
8.2 KiB
SQL
SET @has_generation_tasks_cancel_requested = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'generation_tasks'
|
|
AND COLUMN_NAME = 'cancel_requested'
|
|
);
|
|
|
|
SET @add_generation_tasks_cancel_requested = IF(
|
|
@has_generation_tasks_cancel_requested = 0,
|
|
"ALTER TABLE generation_tasks ADD COLUMN cancel_requested TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否已请求取消'",
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt_add_generation_tasks_cancel_requested FROM @add_generation_tasks_cancel_requested;
|
|
EXECUTE stmt_add_generation_tasks_cancel_requested;
|
|
DEALLOCATE PREPARE stmt_add_generation_tasks_cancel_requested;
|
|
|
|
SET @has_generation_tasks_cancel_requested_at = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'generation_tasks'
|
|
AND COLUMN_NAME = 'cancel_requested_at'
|
|
);
|
|
|
|
SET @add_generation_tasks_cancel_requested_at = IF(
|
|
@has_generation_tasks_cancel_requested_at = 0,
|
|
"ALTER TABLE generation_tasks ADD COLUMN cancel_requested_at DATETIME NULL COMMENT '请求取消时间'",
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt_add_generation_tasks_cancel_requested_at FROM @add_generation_tasks_cancel_requested_at;
|
|
EXECUTE stmt_add_generation_tasks_cancel_requested_at;
|
|
DEALLOCATE PREPARE stmt_add_generation_tasks_cancel_requested_at;
|
|
|
|
SET @has_generation_tasks_cancel_reason = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'generation_tasks'
|
|
AND COLUMN_NAME = 'cancel_reason'
|
|
);
|
|
|
|
SET @add_generation_tasks_cancel_reason = IF(
|
|
@has_generation_tasks_cancel_reason = 0,
|
|
"ALTER TABLE generation_tasks ADD COLUMN cancel_reason VARCHAR(255) NULL COMMENT '取消原因'",
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt_add_generation_tasks_cancel_reason FROM @add_generation_tasks_cancel_reason;
|
|
EXECUTE stmt_add_generation_tasks_cancel_reason;
|
|
DEALLOCATE PREPARE stmt_add_generation_tasks_cancel_reason;
|
|
|
|
SET @has_generation_tasks_cancelled_at = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'generation_tasks'
|
|
AND COLUMN_NAME = 'cancelled_at'
|
|
);
|
|
|
|
SET @add_generation_tasks_cancelled_at = IF(
|
|
@has_generation_tasks_cancelled_at = 0,
|
|
"ALTER TABLE generation_tasks ADD COLUMN cancelled_at DATETIME NULL COMMENT '实际取消完成时间'",
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt_add_generation_tasks_cancelled_at FROM @add_generation_tasks_cancelled_at;
|
|
EXECUTE stmt_add_generation_tasks_cancelled_at;
|
|
DEALLOCATE PREPARE stmt_add_generation_tasks_cancelled_at;
|
|
|
|
SET @has_ix_generation_tasks_status_cancel_requested = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.STATISTICS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'generation_tasks'
|
|
AND INDEX_NAME = 'ix_generation_tasks_status_cancel_requested'
|
|
);
|
|
|
|
SET @create_ix_generation_tasks_status_cancel_requested = IF(
|
|
@has_ix_generation_tasks_status_cancel_requested = 0,
|
|
'CREATE INDEX ix_generation_tasks_status_cancel_requested ON generation_tasks (status, cancel_requested)',
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt_ix_generation_tasks_status_cancel_requested FROM @create_ix_generation_tasks_status_cancel_requested;
|
|
EXECUTE stmt_ix_generation_tasks_status_cancel_requested;
|
|
DEALLOCATE PREPARE stmt_ix_generation_tasks_status_cancel_requested;
|
|
|
|
SET @has_generation_tasks_task_kind = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'generation_tasks'
|
|
AND COLUMN_NAME = 'task_kind'
|
|
);
|
|
|
|
SET @add_generation_tasks_task_kind = IF(
|
|
@has_generation_tasks_task_kind = 0,
|
|
"ALTER TABLE generation_tasks ADD COLUMN task_kind VARCHAR(64) NOT NULL DEFAULT 'generic' COMMENT '业务任务类型:用于执行器路由'",
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt_add_generation_tasks_task_kind FROM @add_generation_tasks_task_kind;
|
|
EXECUTE stmt_add_generation_tasks_task_kind;
|
|
DEALLOCATE PREPARE stmt_add_generation_tasks_task_kind;
|
|
|
|
SET @has_generation_tasks_executor_type = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'generation_tasks'
|
|
AND COLUMN_NAME = 'executor_type'
|
|
);
|
|
|
|
SET @add_generation_tasks_executor_type = IF(
|
|
@has_generation_tasks_executor_type = 0,
|
|
"ALTER TABLE generation_tasks ADD COLUMN executor_type VARCHAR(32) NULL COMMENT '执行器类型,如 celery'",
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt_add_generation_tasks_executor_type FROM @add_generation_tasks_executor_type;
|
|
EXECUTE stmt_add_generation_tasks_executor_type;
|
|
DEALLOCATE PREPARE stmt_add_generation_tasks_executor_type;
|
|
|
|
SET @has_generation_tasks_executor_task_id = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'generation_tasks'
|
|
AND COLUMN_NAME = 'executor_task_id'
|
|
);
|
|
|
|
SET @add_generation_tasks_executor_task_id = IF(
|
|
@has_generation_tasks_executor_task_id = 0,
|
|
"ALTER TABLE generation_tasks ADD COLUMN executor_task_id VARCHAR(128) NULL COMMENT '执行器侧任务 ID,如 celery task id'",
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt_add_generation_tasks_executor_task_id FROM @add_generation_tasks_executor_task_id;
|
|
EXECUTE stmt_add_generation_tasks_executor_task_id;
|
|
DEALLOCATE PREPARE stmt_add_generation_tasks_executor_task_id;
|
|
|
|
SET @has_generation_tasks_started_at = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'generation_tasks'
|
|
AND COLUMN_NAME = 'started_at'
|
|
);
|
|
|
|
SET @add_generation_tasks_started_at = IF(
|
|
@has_generation_tasks_started_at = 0,
|
|
"ALTER TABLE generation_tasks ADD COLUMN started_at DATETIME NULL COMMENT '任务开始执行时间'",
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt_add_generation_tasks_started_at FROM @add_generation_tasks_started_at;
|
|
EXECUTE stmt_add_generation_tasks_started_at;
|
|
DEALLOCATE PREPARE stmt_add_generation_tasks_started_at;
|
|
|
|
SET @has_generation_tasks_finished_at = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'generation_tasks'
|
|
AND COLUMN_NAME = 'finished_at'
|
|
);
|
|
|
|
SET @add_generation_tasks_finished_at = IF(
|
|
@has_generation_tasks_finished_at = 0,
|
|
"ALTER TABLE generation_tasks ADD COLUMN finished_at DATETIME NULL COMMENT '任务结束时间(成功 / 失败 / 取消)'",
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt_add_generation_tasks_finished_at FROM @add_generation_tasks_finished_at;
|
|
EXECUTE stmt_add_generation_tasks_finished_at;
|
|
DEALLOCATE PREPARE stmt_add_generation_tasks_finished_at;
|
|
|
|
SET @has_ix_generation_tasks_task_kind = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.STATISTICS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'generation_tasks'
|
|
AND INDEX_NAME = 'ix_generation_tasks_task_kind'
|
|
);
|
|
|
|
SET @create_ix_generation_tasks_task_kind = IF(
|
|
@has_ix_generation_tasks_task_kind = 0,
|
|
'CREATE INDEX ix_generation_tasks_task_kind ON generation_tasks (task_kind)',
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt_ix_generation_tasks_task_kind FROM @create_ix_generation_tasks_task_kind;
|
|
EXECUTE stmt_ix_generation_tasks_task_kind;
|
|
DEALLOCATE PREPARE stmt_ix_generation_tasks_task_kind;
|
|
|
|
SET @has_ix_generation_tasks_status_updated_at = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.STATISTICS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'generation_tasks'
|
|
AND INDEX_NAME = 'ix_generation_tasks_status_updated_at'
|
|
);
|
|
|
|
SET @create_ix_generation_tasks_status_updated_at = IF(
|
|
@has_ix_generation_tasks_status_updated_at = 0,
|
|
'CREATE INDEX ix_generation_tasks_status_updated_at ON generation_tasks (status, updated_at)',
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt_ix_generation_tasks_status_updated_at FROM @create_ix_generation_tasks_status_updated_at;
|
|
EXECUTE stmt_ix_generation_tasks_status_updated_at;
|
|
DEALLOCATE PREPARE stmt_ix_generation_tasks_status_updated_at;
|
|
|
|
SET @has_ix_generation_tasks_mode_updated_at = (
|
|
SELECT COUNT(*)
|
|
FROM information_schema.STATISTICS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'generation_tasks'
|
|
AND INDEX_NAME = 'ix_generation_tasks_mode_updated_at'
|
|
);
|
|
|
|
SET @create_ix_generation_tasks_mode_updated_at = IF(
|
|
@has_ix_generation_tasks_mode_updated_at = 0,
|
|
'CREATE INDEX ix_generation_tasks_mode_updated_at ON generation_tasks (mode, updated_at)',
|
|
'SELECT 1'
|
|
);
|
|
PREPARE stmt_ix_generation_tasks_mode_updated_at FROM @create_ix_generation_tasks_mode_updated_at;
|
|
EXECUTE stmt_ix_generation_tasks_mode_updated_at;
|
|
DEALLOCATE PREPARE stmt_ix_generation_tasks_mode_updated_at;
|