From 8d8e066e6d29dc33c816e971d1f48bfe0bfe2587 Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Tue, 30 Jun 2026 10:44:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20Flyway=20=E5=90=AF=E5=8A=A8=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=20repair=20=E2=86=92=20migrate=EF=BC=8C=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E8=87=AA=E6=84=88=E5=A4=B1=E8=B4=A5=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - FlywayConfig: 自定义 FlywayMigrationStrategy - 启动时先 flyway.repair() 清理残留失败记录 - 再 flyway.migrate() 执行待迁移 - 全程应用内完成,无需外部操作 --- .../java/com/par/api/config/FlywayConfig.java | 26 +++++++++++++++++++ par-api/src/main/resources/application.yml | 1 - 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 par-api/src/main/java/com/par/api/config/FlywayConfig.java 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 new file mode 100644 index 0000000..76d104c --- /dev/null +++ b/par-api/src/main/java/com/par/api/config/FlywayConfig.java @@ -0,0 +1,26 @@ +package com.par.api.config; + +import lombok.extern.slf4j.Slf4j; +import org.flywaydb.core.Flyway; +import org.springframework.boot.autoconfigure.flyway.FlywayMigrationStrategy; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * Flyway 自动修复配置 + * 启动时自动清理残留的失败迁移记录,再执行待迁移 + */ +@Slf4j +@Configuration +public class FlywayConfig { + + @Bean + public FlywayMigrationStrategy flywayMigrationStrategy() { + return (Flyway flyway) -> { + log.info("Flyway repair: cleaning failed migration records..."); + flyway.repair(); + log.info("Flyway migrate: applying pending migrations..."); + flyway.migrate(); + }; + } +} diff --git a/par-api/src/main/resources/application.yml b/par-api/src/main/resources/application.yml index 2af4033..5bf96ae 100644 --- a/par-api/src/main/resources/application.yml +++ b/par-api/src/main/resources/application.yml @@ -31,7 +31,6 @@ spring: locations: classpath:db/migration baseline-on-migrate: true baseline-version: 0 - repair-on-migrate: true mybatis-plus: configuration: