用Spring Boot修复飞路

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

我只是在我的pom.xml添加了Flyway依赖项来激活Flyway。 一切正常。 启动Spring Boot应用程序时,将迁移我的数据库脚本。

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

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

SQL语句:

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

直接运行flyway

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

使用Flyway Maven插件

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

扩展Spring Boot

Spring Boot将调用Flyway.migrate()来执行数据库迁移。 如果您想要更多控制,请提供实现FlywayMigrationStrategy

FlywayMigrationStrategy您可以从FlywayMigrationStrategy调用迁移或修复方法。 “ Spring Boot参考指南”中提供了更多信息。

我不认为应用程序中的FlywayMigrationStrategy是修复数据库的正确位置。 迁移失败是一个例外,应该在应用程序之外处理。

Flyway Maven插件

只是将这些信息添加到@ Daniel的答案中

1。

  ...  org.flywaydb flyway-maven-plugin 4.1.0  jdbc:mysql://localhost:3306 root root  [your_schema]    ... 

2。

mvn flyway:干净

3。

mvn flyway:修理

PS。:如果步骤2和3不起作用,则更改订单。

有关maven目标的更多信息: https : //flywaydb.org/documentation/maven/