feat: Flyway 启动自动 repair → migrate,应用自愈失败迁移记录
- FlywayConfig: 自定义 FlywayMigrationStrategy - 启动时先 flyway.repair() 清理残留失败记录 - 再 flyway.migrate() 执行待迁移 - 全程应用内完成,无需外部操作
This commit is contained in:
26
par-api/src/main/java/com/par/api/config/FlywayConfig.java
Normal file
26
par-api/src/main/java/com/par/api/config/FlywayConfig.java
Normal file
@@ -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();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -31,7 +31,6 @@ spring:
|
|||||||
locations: classpath:db/migration
|
locations: classpath:db/migration
|
||||||
baseline-on-migrate: true
|
baseline-on-migrate: true
|
||||||
baseline-version: 0
|
baseline-version: 0
|
||||||
repair-on-migrate: true
|
|
||||||
|
|
||||||
mybatis-plus:
|
mybatis-plus:
|
||||||
configuration:
|
configuration:
|
||||||
|
|||||||
Reference in New Issue
Block a user