用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/