From 15a3c381d06376c8aa319cbf976514a0a2539b24 Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Tue, 7 Jul 2026 00:19:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Drisk=5Frules=E8=A1=A8s?= =?UTF-8?q?ite=5Ftype=E5=AD=97=E6=AE=B5=E6=97=A0=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=80=BC=E5=AF=BC=E8=87=B4=E6=8F=92=E5=85=A5=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- par-api/src/main/java/com/par/api/config/FlywayConfig.java | 4 ++-- .../main/resources/db/migration/V15__risk_rules_site_id.sql | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/par-api/src/main/java/com/par/api/config/FlywayConfig.java b/par-api/src/main/java/com/par/api/config/FlywayConfig.java index c4fe807..cb53be9 100644 --- a/par-api/src/main/java/com/par/api/config/FlywayConfig.java +++ b/par-api/src/main/java/com/par/api/config/FlywayConfig.java @@ -33,10 +33,10 @@ public class FlywayConfig { "created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, " + "INDEX idx_site_id (site_id, deleted)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"); stmt.execute("CREATE TABLE IF NOT EXISTS risk_rules (" + - "id BIGINT AUTO_INCREMENT PRIMARY KEY, site_type VARCHAR(32) NOT NULL, version INT NOT NULL DEFAULT 1, " + + "id BIGINT AUTO_INCREMENT PRIMARY KEY, site_type VARCHAR(32) DEFAULT NULL, site_id VARCHAR(255) DEFAULT NULL, version INT NOT NULL DEFAULT 1, " + "rules_json LONGTEXT NOT NULL, deleted TINYINT NOT NULL DEFAULT 0, " + "created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, " + - "INDEX idx_site_type (site_type, deleted)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"); + "INDEX idx_site_type (site_type, deleted), INDEX idx_risk_rules_site_id (site_id)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"); try { stmt.execute("ALTER TABLE sites ADD COLUMN version INT NOT NULL DEFAULT 1"); } catch (Exception ex) { log.debug("version may exist"); } log.info("V15 tables initialized"); } catch (Exception e) { diff --git a/par-core/src/main/resources/db/migration/V15__risk_rules_site_id.sql b/par-core/src/main/resources/db/migration/V15__risk_rules_site_id.sql index ef45993..f87f98f 100644 --- a/par-core/src/main/resources/db/migration/V15__risk_rules_site_id.sql +++ b/par-core/src/main/resources/db/migration/V15__risk_rules_site_id.sql @@ -4,6 +4,12 @@ PREPARE stmt FROM @sqlstmt; EXECUTE stmt; DEALLOCATE PREPARE stmt; +SET @site_type_nullable := (SELECT IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE() AND table_name = 'risk_rules' AND column_name = 'site_type'); +SET @site_type_sqlstmt := IF(@site_type_nullable = 'NO', 'ALTER TABLE risk_rules MODIFY COLUMN site_type VARCHAR(32) DEFAULT NULL', 'DO 0'); +PREPARE site_type_stmt FROM @site_type_sqlstmt; +EXECUTE site_type_stmt; +DEALLOCATE PREPARE site_type_stmt; + SET @idx_exist := (SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS WHERE table_schema = DATABASE() AND table_name = 'risk_rules' AND index_name = 'idx_risk_rules_site_id'); SET @idx_sqlstmt := IF(@idx_exist = 0, 'CREATE INDEX idx_risk_rules_site_id ON risk_rules(site_id)', 'DO 0'); PREPARE idx_stmt FROM @idx_sqlstmt;