FlywayDB迁移删除

时间:2017-10-04 12:30:12

标签: spring spring-boot flyway

我一直认为,如果删除了应用了flywaydb的迁移(两者都是:来自DB schema_version表的条目和迁移sql文件)那么应用程序(在类路径中使用flyway编写的spring框架中)将崩溃在启动时因校验和无效。

实际上(我今天测试过)当迁移文件和数据库条目都被删除时,应用程序启动就好了,我觉得有点混乱。

flyway如何计算校验和?它仅基于正在应用的迁移文件的内容还是先前的迁移也被考虑在内?

此外,如果删除了文件和表条目,是否可以安全删除已应用的迁移?

1 个答案:

答案 0 :(得分:2)

这里有很多问题。对于您的主要问题,此行为由ignoreMissingMigrations标志控制。见https://flywaydb.org/documentation/commandline/migrate

校验和是根据迁移文件的内容计算的(忽略由于Git CRLF转换导致的行结尾)。

如果删除了迁移文件及其在元数据表中的条目,则Flyway不再了解它。但这并不意味着它是安全的,因为它可能会影响您以后重新创建数据库模式的能力。