2017-10-04 105 views
2

我一直认为,如果移除了应用于flywaydb的迁移(两者:从DB schema_version表和迁移sql文件入口),那么应用程序(在springpath中用flyway在classpath中编写)在启动时会崩溃,因为无效校验和。FlywayDB迁移清除

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

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

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

回答

2

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

校验和根据迁移文件的内容计算(忽略由于Git CRLF转换引起的行结束)。

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