FlywayDB迁移移除

FlywayDB migration removal

我一直认为,如果使用 flywaydb 应用的迁移被删除(两者:来自 DB schema_version table 和迁移 sql 文件的条目)然后应用程序(写在 spring framework with flyway in classpath) 将在启动时崩溃,因为校验和无效。

实际上(我今天测试过)当迁移文件和数据库条目都被删除时,应用程序启动得很好,我发现这有点令人困惑。

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

此外,如果同时删除文件和 table 条目,删除已应用的迁移是否安全?

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

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

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