带弹簧靴的飞道维修SQL 语句:直接飞行使用 Flyway Maven 插件延长弹簧靴

2022-09-01 01:34:14

我不太明白当在Spring Boot项目中使用Flyway进行迁移失败时,我应该做什么。

我通过简单地在我的.一切都很好。我的数据库脚本在我启动 Spring Boot 应用程序时被迁移。pom.xml

但是我的一个脚本中出现了错误,并且上次迁移失败。现在,当我尝试迁移时,会出现“迁移校验和不匹配”。通常,我会运行 ,但是由于我使用的是Spring Boot,因此我不应该使用Flyway Maven插件。那么我该怎么办呢?mvn flyway:repair


答案 1

有几种方法可以对数据库执行修复。我个人更喜欢简单的SQL语句。

SQL 语句:

只需删除迁移失败的行即可。之后,您可以再次运行迁移。

直接飞行

您可以在本地安装 Flyway 并在控制台中运行flyway repair

使用 Flyway Maven 插件

Flyway Maven 插件添加到您的 pom 并运行 。我不认为这与Spring Boot的概念相矛盾。mvn flyway:repair

延长弹簧靴

Spring Boot 将调用来执行数据库迁移。如果需要更多控件,请提供 实现 .Flyway.migrate()@BeanFlywayMigrationStrategy

在 中,您可以从 flyway 调用迁移或修复方法。更多信息请参阅《弹簧靴参考指南》。FlywayMigrationStrategy

我不认为应用程序中的是修复数据库的正确位置。迁移失败是异常,应在应用程序外部进行处理。FlywayMigrationStrategy


答案 2

您可以通过声明以下 Bean 通过代码来执行此操作。

@Bean
public FlywayMigrationStrategy cleanMigrateStrategy() {
    return flyway -> {
        flyway.repair();
        flyway.migrate();
    };
}

推荐