34 lines
2.4 KiB
SQL
34 lines
2.4 KiB
SQL
SET NAMES utf8mb4;
|
|
USE baiyue_iam;
|
|
|
|
SET @customer_dimension_status_ddl = (SELECT IF(
|
|
EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE()
|
|
AND table_name='iam_tenant' AND column_name='dimension_initialization_status'),
|
|
'SELECT 1',
|
|
'ALTER TABLE iam_tenant ADD COLUMN dimension_initialization_status VARCHAR(16) NOT NULL DEFAULT ''READY'' COMMENT ''默认尺寸初始化状态:PENDING待处理、READY已就绪、FAILED失败'' AFTER status'));
|
|
PREPARE customer_dimension_status_stmt FROM @customer_dimension_status_ddl;
|
|
EXECUTE customer_dimension_status_stmt;
|
|
DEALLOCATE PREPARE customer_dimension_status_stmt;
|
|
|
|
CREATE TABLE IF NOT EXISTS iam_customer_dimension_initialization_task (
|
|
tenant_id BIGINT NOT NULL COMMENT '客户ID及任务聚合ID',
|
|
operator_id BIGINT NOT NULL COMMENT '触发初始化的操作人ID;系统补偿为0',
|
|
initialization_key VARCHAR(128) NOT NULL COMMENT '稳定初始化幂等键:iam-customer-create:{tenantId}',
|
|
action VARCHAR(16) NOT NULL DEFAULT 'INITIALIZE' COMMENT '目标动作:INITIALIZE初始化、COMPENSATE补偿',
|
|
status VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT '投递状态:PENDING待投递、SENDING投递中、READY已就绪、FAILED失败、CANCELLED已补偿',
|
|
attempt_count INT NOT NULL DEFAULT 0 COMMENT '当前动作已失败尝试次数',
|
|
next_retry_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '下次允许投递时间',
|
|
lease_owner VARCHAR(128) NULL COMMENT '当前任务租约持有者',
|
|
lease_until DATETIME(3) NULL COMMENT '当前任务租约截止时间',
|
|
last_error_code VARCHAR(32) NULL COMMENT '最后下游错误码',
|
|
last_error_message VARCHAR(1000) NULL COMMENT '最后诊断错误,不保存敏感凭证',
|
|
remote_config_id BIGINT NULL COMMENT 'Firstleg返回的首条默认尺寸配置ID',
|
|
task_version INT NOT NULL DEFAULT 0 COMMENT '任务乐观版本;切换动作或认领时递增',
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '任务创建时间',
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '任务更新时间',
|
|
completed_at DATETIME(3) NULL COMMENT 'READY或CANCELLED完成时间',
|
|
PRIMARY KEY (tenant_id),
|
|
KEY idx_customer_dimension_task_dispatch (status,next_retry_at,lease_until),
|
|
KEY idx_customer_dimension_task_diagnosis (status,updated_at)
|
|
) ENGINE=InnoDB COMMENT='IAM客户默认尺寸可靠后台初始化任务及诊断状态';
|