yeg
2026-09-02 7e4484e9c901f3a1974cb586ac34df5283ce5970
修复迁移校验并补充遗留表清理
2个文件已添加
2个文件已修改
43 ■■■■■ 已修改文件
ruoyi-admin/src/main/resources/db/migration/V28__remove_reception_backfill_integrity_legacy.sql 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/db/migration/V29__remove_remaining_history_gap_legacy.sql 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/test/java/com/ruoyi/config/Ticket28MigrationContractTest.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/test/java/com/ruoyi/config/Ticket29MigrationContractTest.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/db/migration/V28__remove_reception_backfill_integrity_legacy.sql
@@ -4,8 +4,6 @@
DROP TABLE t_test_integrity_issue;
DROP TABLE t_test_backfill_cursor;
DROP TABLE t_data_gap;
DROP TABLE t_history_sync_cursor;
DROP TABLE t_test_collector_exception_interval;
DROP TABLE t_test_reception_interval;
DROP TABLE t_collector_channel_lease;
ruoyi-admin/src/main/resources/db/migration/V29__remove_remaining_history_gap_legacy.sql
New file
@@ -0,0 +1,7 @@
-- Ticket28 后续清理:V28 已执行后补删遗留历史游标和数据缺口表,保持已应用迁移不可变。
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS t_data_gap;
DROP TABLE IF EXISTS t_history_sync_cursor;
SET FOREIGN_KEY_CHECKS = 1;
ruoyi-admin/src/test/java/com/ruoyi/config/Ticket28MigrationContractTest.java
@@ -16,8 +16,6 @@
        assertTrue(sql.contains("DROP TABLE t_test_reception_interval"));
        assertTrue(sql.contains("DROP TABLE t_collector_channel_lease"));
        assertTrue(sql.contains("DROP TABLE t_channel_lease"));
        assertTrue(sql.contains("DROP TABLE t_data_gap"));
        assertTrue(sql.contains("DROP TABLE t_history_sync_cursor"));
        assertTrue(sql.contains("DROP FOREIGN KEY fk_sample_reception_interval"));
        assertTrue(sql.contains("DROP FOREIGN KEY fk_collector_sample_reception_interval"));
        assertTrue(sql.contains("DROP COLUMN reception_interval_id"));
ruoyi-admin/src/test/java/com/ruoyi/config/Ticket29MigrationContractTest.java
New file
@@ -0,0 +1,32 @@
package com.ruoyi.config;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import org.junit.jupiter.api.Test;
/** V29 补删 Ticket28 遗漏的历史补采游标和数据缺口表。 */
class Ticket29MigrationContractTest
{
    @Test
    void removesRemainingHistorySyncTables()
    {
        String sql = resource("db/migration/V29__remove_remaining_history_gap_legacy.sql");
        assertTrue(sql.contains("DROP TABLE IF EXISTS t_data_gap"));
        assertTrue(sql.contains("DROP TABLE IF EXISTS t_history_sync_cursor"));
    }
    private static String resource(String path)
    {
        try (InputStream stream = Ticket29MigrationContractTest.class.getClassLoader().getResourceAsStream(path))
        {
            if (stream == null) throw new AssertionError("Missing migration resource " + path);
            return new String(stream.readAllBytes(), StandardCharsets.UTF_8);
        }
        catch (Exception exception)
        {
            throw new AssertionError("Unable to read migration resource " + path, exception);
        }
    }
}