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 将不再了解它。然而,这并不意味着它是安全的,因为它可能会影响您以后重新创建数据库模式的能力。
我一直认为,如果使用 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 将不再了解它。然而,这并不意味着它是安全的,因为它可能会影响您以后重新创建数据库模式的能力。