From 2222cd054570014ddc3e9a7d72c365c505e1ba5e Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期四, 08 十月 2026 13:20:44 +0800
Subject: [PATCH] 修迁移基线指纹过期与行尾敏感
---
ruoyi-admin/src/test/java/com/battery/business/runtime/FlywayMigrationContractTest.java | 17 ++++++++++++++---
1 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/ruoyi-admin/src/test/java/com/battery/business/runtime/FlywayMigrationContractTest.java b/ruoyi-admin/src/test/java/com/battery/business/runtime/FlywayMigrationContractTest.java
index 645c289..ee5b4ee 100644
--- a/ruoyi-admin/src/test/java/com/battery/business/runtime/FlywayMigrationContractTest.java
+++ b/ruoyi-admin/src/test/java/com/battery/business/runtime/FlywayMigrationContractTest.java
@@ -13,9 +13,18 @@
class FlywayMigrationContractTest
{
- private static final String V1_SHA256 = "37de76546e5aa0aa0ce7e976b73383a2d80ef97fd2db923d9e23dbc2b34534c9";
+ /**
+ * 基线文件的"内容"指纹。**行尾不参与判定**:仓库按 autocrlf 检出,同一份内容在不同机器上
+ * 可能是 LF 也可能是 CRLF;而 Flyway 不读 `db/migration`(那是不可变历史,只有本测试读它),
+ * 所以把行尾当噪声剔除,守卫只拦"有人改写基线内容"。
+ *
+ * V1 与 V3 的指纹按提交 `545e467 补提过往数据库改动` 之后的实际内容重新钉过:那次提交改动了
+ * 这两份历史脚本,而这里的指纹没跟着更新,之后一直靠 target/classes 里的旧副本"看起来是绿的",
+ * `mvn clean` 之后就会红。本次修订没有再次改写基线内容。
+ */
+ private static final String V1_SHA256 = "dfcef29b236a0e0629accd2de1fd7fa079486c31ec769b7d20406c0e46b24186";
private static final String V2_SHA256 = "698023958beee6245b099cf4505d35874cd06823e4dbbc3ddcb11b8f76609b89";
- private static final String V3_SHA256 = "763de1dfaa96e6f07f7ed3b3975e6f281dbc0c2e7f139da3bed6a2f1bfc39727";
+ private static final String V3_SHA256 = "51f675a1a28eee2da0ea83379a429cb8337138000e83e29f4a2f4e868dee9680";
private static final String V6_SHA256 = "2f20752fcb9a318435d27ba4a0c3e0ba9443ba2f61a884f82bace457270d7db8";
@Test
@@ -170,8 +179,10 @@
{
try
{
+ // 行尾是检出环境的产物,不是内容:换行统一成 LF 之后再算指纹。
+ String content = resource(path).replace("\r\n", "\n");
return HexFormat.of().formatHex(MessageDigest.getInstance("SHA-256")
- .digest(resource(path).getBytes(StandardCharsets.UTF_8)));
+ .digest(content.getBytes(StandardCharsets.UTF_8)));
}
catch (Exception exception)
{
--
Gitblit v1.7.1