yeg
6 天以前 2222cd054570014ddc3e9a7d72c365c505e1ba5e
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)
        {