在
Spring Boot项目中迁移失败时,我不太明白我应该做什么.
我通过在我的pom.xml中添加了Flyway依赖关系激活了Flyway.一切都很好.当我启动Spring Boot应用程序时,我的数据库脚本将被迁移.
但是我的一个脚本中有一个错误,我的最后一个迁移失败.现在,当我尝试迁移时,有一个“迁移校验和不匹配”.通常,我会运行mvn flyway:修复,但是由于我使用Spring Boot,所以我不应该使用Flyway Maven插件.那我该怎么办?
解决方法
有几种方法可以在数据库上执行修复.我个人更喜欢简单的sql语句.
sql语句:
只需删除迁移失败的行.之后,您可以再次运行迁移.
直接运行飞行
您可以在控制台中安装Flyway本地并运行飞行维修
使用Flyway Maven插件
将Flyway Maven Plugin添加到您的pom并运行mvn flyway:repair.我不认为这与Spring Boot概念相矛盾.
延长弹簧启动
Spring Boot will call
Flyway.migrate()
to perform the database migration. If you would like more control,provide a@Bean
that implementsFlywayMigrationStrategy
.
在FlywayMigrationStrategy中,您可以从飞行路线调用迁移或修复方法.更多信息可在Spring Boot Reference Guide.
我不认为应用程序中的FlywayMigrationStrategy是修复数据库的正确位置.迁移失败是一个例外,应该在应用程序之外处理.