mirror of
https://gitee.com/mateos/mateclaw.git
synced 2026-09-13 11:13:43 +08:00
33 lines
1.0 KiB
Java
33 lines
1.0 KiB
Java
package vip.mate.config;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.flywaydb.core.Flyway;
|
|
import org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializer;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
/**
|
|
* Flyway auto-repair configuration.
|
|
* <p>
|
|
* Replaces the default {@link FlywayMigrationInitializer} with one that
|
|
* calls {@code flyway.repair()} before {@code flyway.migrate()}.
|
|
* This handles failed migrations and checksum mismatches transparently
|
|
* during version upgrades — especially important for Desktop app users
|
|
* who cannot manually run CLI commands.
|
|
*
|
|
* @author MateClaw Team
|
|
*/
|
|
@Slf4j
|
|
@Configuration
|
|
public class FlywayRepairConfig {
|
|
|
|
@Bean
|
|
public FlywayMigrationInitializer flywayInitializer(Flyway flyway) {
|
|
return new FlywayMigrationInitializer(flyway, f -> {
|
|
log.info("[Flyway] Running repair before migrate (auto-fix failed/changed migrations)...");
|
|
f.repair();
|
|
f.migrate();
|
|
});
|
|
}
|
|
}
|