fix carrier history action schema upgrade
This commit is contained in:
@@ -10428,6 +10428,26 @@ CREATE TABLE IF NOT EXISTS fl_carrier_schedule_query_operation (
|
||||
CONSTRAINT chk_carrier_schedule_operation_status CHECK (status IN ('PROCESSING','SUCCESS'))
|
||||
) ENGINE=InnoDB COMMENT='船司查询写操作幂等与请求摘要';
|
||||
|
||||
-- CREATE TABLE IF NOT EXISTS 不会更新已有表的 CHECK。历史开发库仍可能只允许
|
||||
-- CREATE/ATTEMPT/MANUAL_RESULT,必须在人工节点和自动节点写入前收敛为当前动作集。
|
||||
DROP PROCEDURE IF EXISTS migrate_carrier_schedule_history_action_check;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE migrate_carrier_schedule_history_action_check()
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.table_constraints
|
||||
WHERE constraint_schema=DATABASE() AND table_name='fl_carrier_schedule_query_history'
|
||||
AND constraint_name='chk_carrier_schedule_history_action' AND constraint_type='CHECK') THEN
|
||||
ALTER TABLE fl_carrier_schedule_query_history DROP CHECK chk_carrier_schedule_history_action;
|
||||
END IF;
|
||||
ALTER TABLE fl_carrier_schedule_query_history
|
||||
ADD CONSTRAINT chk_carrier_schedule_history_action CHECK
|
||||
(action IN ('CREATE','AUTO_CREATE','MANUAL_RESULT','MANUAL_NODE','NODE_OBSERVED',
|
||||
'EXCEPTION_OBSERVED','PROVIDER_QUERY','STOP'));
|
||||
END$$
|
||||
DELIMITER ;
|
||||
CALL migrate_carrier_schedule_history_action_check();
|
||||
DROP PROCEDURE IF EXISTS migrate_carrier_schedule_history_action_check;
|
||||
|
||||
DROP TRIGGER IF EXISTS trg_carrier_schedule_query_before_insert;
|
||||
DELIMITER $$
|
||||
CREATE TRIGGER trg_carrier_schedule_query_before_insert BEFORE INSERT ON fl_carrier_schedule_query FOR EACH ROW
|
||||
|
||||
@@ -181,6 +181,26 @@ CREATE TABLE IF NOT EXISTS fl_carrier_schedule_query_operation (
|
||||
CONSTRAINT chk_carrier_schedule_operation_status CHECK (status IN ('PROCESSING','SUCCESS'))
|
||||
) ENGINE=InnoDB COMMENT='船司查询写操作幂等与请求摘要';
|
||||
|
||||
-- CREATE TABLE IF NOT EXISTS 不会更新已有表的 CHECK。历史开发库仍可能只允许
|
||||
-- CREATE/ATTEMPT/MANUAL_RESULT,必须在人工节点和自动节点写入前收敛为当前动作集。
|
||||
DROP PROCEDURE IF EXISTS migrate_carrier_schedule_history_action_check;
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE migrate_carrier_schedule_history_action_check()
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.table_constraints
|
||||
WHERE constraint_schema=DATABASE() AND table_name='fl_carrier_schedule_query_history'
|
||||
AND constraint_name='chk_carrier_schedule_history_action' AND constraint_type='CHECK') THEN
|
||||
ALTER TABLE fl_carrier_schedule_query_history DROP CHECK chk_carrier_schedule_history_action;
|
||||
END IF;
|
||||
ALTER TABLE fl_carrier_schedule_query_history
|
||||
ADD CONSTRAINT chk_carrier_schedule_history_action CHECK
|
||||
(action IN ('CREATE','AUTO_CREATE','MANUAL_RESULT','MANUAL_NODE','NODE_OBSERVED',
|
||||
'EXCEPTION_OBSERVED','PROVIDER_QUERY','STOP'));
|
||||
END$$
|
||||
DELIMITER ;
|
||||
CALL migrate_carrier_schedule_history_action_check();
|
||||
DROP PROCEDURE IF EXISTS migrate_carrier_schedule_history_action_check;
|
||||
|
||||
DROP TRIGGER IF EXISTS trg_carrier_schedule_query_before_insert;
|
||||
DELIMITER $$
|
||||
CREATE TRIGGER trg_carrier_schedule_query_before_insert BEFORE INSERT ON fl_carrier_schedule_query FOR EACH ROW
|
||||
|
||||
+8
@@ -34,6 +34,10 @@ class CarrierScheduleQuerySqlContractTest {
|
||||
.contains("DISCHARGED_FROM_VESSEL")
|
||||
.contains("PICKED_UP','EMPTY_RETURNED")
|
||||
.contains("CUSTOMS_HOLD','TERMINAL_HOLD','DOCUMENT_HOLD','UNKNOWN_HOLD")
|
||||
.contains("CREATE PROCEDURE migrate_carrier_schedule_history_action_check()")
|
||||
.contains("DROP CHECK chk_carrier_schedule_history_action")
|
||||
.contains("'MANUAL_NODE','NODE_OBSERVED'")
|
||||
.contains("'EXCEPTION_OBSERVED','PROVIDER_QUERY','STOP'")
|
||||
.contains("provider_event_id")
|
||||
.contains("'PUBLIC_FORM','PUBLIC_WEB_PROXY','PUBLIC_HTML','HCAPTCHA','OFFICIAL_API'")
|
||||
.contains("lease_owner")
|
||||
@@ -86,6 +90,10 @@ class CarrierScheduleQuerySqlContractTest {
|
||||
.contains("SET @carrier_schedule_now = CONVERT_TZ(UTC_TIMESTAMP(3),'+00:00','+08:00')")
|
||||
.contains("SET @carrier_schedule_next = CASE")
|
||||
.contains("CREATE PROCEDURE ensure_carrier_schedule_retry_check()")
|
||||
.contains("CREATE PROCEDURE migrate_carrier_schedule_history_action_check()")
|
||||
.contains("DROP CHECK chk_carrier_schedule_history_action")
|
||||
.contains("'MANUAL_NODE','NODE_OBSERVED'")
|
||||
.contains("'EXCEPTION_OBSERVED','PROVIDER_QUERY','STOP'")
|
||||
.contains("ADD CONSTRAINT chk_carrier_schedule_query_attempt CHECK (attempt_count BETWEEN 0 AND 3)")
|
||||
.contains("统一迁移失败:船司查询固定槽位字段、索引或尝试次数约束不完整")
|
||||
.doesNotContain("DROP CHECK chk_carrier_schedule_query_attempt")
|
||||
|
||||
Reference in New Issue
Block a user