我们正在使用 Flyway 迁移我们的数据库,我们实际上有数千个模式(又名筒仓)。
当我们部署新版本时,即使软件构建不需要迁移,数据库迁移也可能需要 10 分钟。
我想知道我们是否可以将 Flyway 配置为执行惰性数据库迁移:检查所有模式的每个 schema_version
表,如果表中的最新数据库版本等于当前软件构建的版本,那么什么都不用做;否则,如果 software builder 中的数据库版本较新,则只需从表中的最新版本开始进行必要的迁移。
如果我们能做到以上几点,迁移时间可以从 10 分钟缩短到几秒。
谁能阐明如何做到这一点?谢谢!
最佳答案
正如 JB Nizet 所说,Flyway 会检查当前版本,除非需要,否则不会执行任何更新。
但是,如果您的目标是摆脱这种检查,因为它需要时间,您可以切换到基于 Java 的迁移而不是基于 SQL 的迁移,因为与后者不同,Java 迁移没有校验和,这您是否可以减少一些执行时间;不过仍然需要测试。
这是从官方文档中得到的:
Unlike SQL migrations, Java migrations by default do not have a checksum and therefore do not participate in the change detection of Flyway’s validation. This can be remedied by implementing the MigrationChecksumProvider interface.
我不知道这是否会减少执行时间,但至少值得测试一下。
关于java - 使用 Flyway 进行惰性数据库迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50897529/