【发布时间】:2016-09-24 13:23:33
【问题描述】:
我不太明白当在 Spring Boot 项目中使用 Flyway 迁移失败时我应该做什么。
我只需在 pom.xml 中添加 Flyway 依赖项即可激活 Flyway。一切正常。当我启动 Spring Boot 应用程序时,我的数据库脚本被迁移。
但是我的一个脚本中有一个错误,并且我的最后一次迁移失败了。现在,当我尝试迁移时,出现“迁移校验和不匹配”。通常,我会运行mvn flyway:repair,但由于我使用的是 Spring Boot,所以我不应该使用 Flyway Maven 插件。那我该怎么办?
【问题讨论】:
-
我会说手动运行
flyway repair因为更改以前的 sql 文件应该是非常特殊的。但看起来类路径中的 sql 文件和本地的 sql 文件之间的校验和不匹配... -
但是,就像我说的,在使用 Spring Boot 时,您不应该使用 Flyway 插件。
-
不,但是通过使用flyway,您不需要更改现有的sql文件!特别是如果它们已经在 prod db 上执行。您应该只在每次更改时添加新的 SQL 文件。我可以理解为什么 spring-boot 不支持这一点:它应该保持手动操作,当然不应该默认......(忽略对 SQL 已经运行的任何更改)
-
好的,但是你如何测试你的 SQL 脚本呢?手动?还是使用 Flyway 插件?
-
两者。我的开发环境中基本上有一个“测试数据库”,我可以随时刷新:
mvn flyway:clean flyway:migrate。您也可以使用 flyway 命令行。
标签: java spring maven spring-boot flyway