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'))
|
CONSTRAINT chk_carrier_schedule_operation_status CHECK (status IN ('PROCESSING','SUCCESS'))
|
||||||
) ENGINE=InnoDB COMMENT='船司查询写操作幂等与请求摘要';
|
) 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;
|
DROP TRIGGER IF EXISTS trg_carrier_schedule_query_before_insert;
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE TRIGGER trg_carrier_schedule_query_before_insert BEFORE INSERT ON fl_carrier_schedule_query FOR EACH ROW
|
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'))
|
CONSTRAINT chk_carrier_schedule_operation_status CHECK (status IN ('PROCESSING','SUCCESS'))
|
||||||
) ENGINE=InnoDB COMMENT='船司查询写操作幂等与请求摘要';
|
) 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;
|
DROP TRIGGER IF EXISTS trg_carrier_schedule_query_before_insert;
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE TRIGGER trg_carrier_schedule_query_before_insert BEFORE INSERT ON fl_carrier_schedule_query FOR EACH ROW
|
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("DISCHARGED_FROM_VESSEL")
|
||||||
.contains("PICKED_UP','EMPTY_RETURNED")
|
.contains("PICKED_UP','EMPTY_RETURNED")
|
||||||
.contains("CUSTOMS_HOLD','TERMINAL_HOLD','DOCUMENT_HOLD','UNKNOWN_HOLD")
|
.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("provider_event_id")
|
||||||
.contains("'PUBLIC_FORM','PUBLIC_WEB_PROXY','PUBLIC_HTML','HCAPTCHA','OFFICIAL_API'")
|
.contains("'PUBLIC_FORM','PUBLIC_WEB_PROXY','PUBLIC_HTML','HCAPTCHA','OFFICIAL_API'")
|
||||||
.contains("lease_owner")
|
.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_now = CONVERT_TZ(UTC_TIMESTAMP(3),'+00:00','+08:00')")
|
||||||
.contains("SET @carrier_schedule_next = CASE")
|
.contains("SET @carrier_schedule_next = CASE")
|
||||||
.contains("CREATE PROCEDURE ensure_carrier_schedule_retry_check()")
|
.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("ADD CONSTRAINT chk_carrier_schedule_query_attempt CHECK (attempt_count BETWEEN 0 AND 3)")
|
||||||
.contains("统一迁移失败:船司查询固定槽位字段、索引或尝试次数约束不完整")
|
.contains("统一迁移失败:船司查询固定槽位字段、索引或尝试次数约束不完整")
|
||||||
.doesNotContain("DROP CHECK chk_carrier_schedule_query_attempt")
|
.doesNotContain("DROP CHECK chk_carrier_schedule_query_attempt")
|
||||||
|
|||||||
Reference in New Issue
Block a user