java - 使用 Flyway 进行惰性数据库迁移

标签 java flyway

我们正在使用 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/

相关文章:

java - JPQL 查询返回没有字段名称的对象

java 。是否有任何谷歌的 Guava 界面可以取代 Map<String, Map<String, String>>?

java - Hibernate 4 二级缓存与memcached

spring-boot - 如何使用 flyway 和单数据库处理模块化 Spring 项目

java - 飞行路线迁移: Data Import With German Umlauts

java - JSON Extractor - 提取数据 - 无法应用于原始数据

java - 如何使用If else语句创建突发报告以进行绩效评估?

Flyway,用特定版本初始化元数据表

flyway - 如何最好地解决 Flyway 问题 156?

database-migration - Flyway 迁移 : [WARNING] Unable to restore connection to having no default schema