Flyway迁移和休眠上下文,执行顺序

时间:2019-03-13 13:41:54

标签: spring-boot flyway

我正在使用带有默认配置的spring boot以及flyway和hibernate。我想知道执行顺序。 根据文档Flyway checks the version of the database and applies new migrations automatically before the rest of the application starts.

在哪里可以找到确认该声明的源代码?确定执行顺序的地方?

1 个答案:

答案 0 :(得分:2)

Spring boot使用一个FlywayMigrationInitializer bean(它以高阶( oder = 0 )实现InitializingBean),以便afterPropertiesSet包含飞行迁移功能:< / p>

@Override
public void afterPropertiesSet() throws Exception {
    if (this.migrationStrategy != null) {
        this.migrationStrategy.migrate(this.flyway);
    }
    else {
        this.flyway.migrate();
    }
}

将执行Flyway.java#migrate()内部的逻辑

  

开始数据库迁移。所有未完成的迁移将被应用   按顺序。在最新数据库上调用迁移无效。

您可以参考Javadoc的Flyway.java和Javadoc的FlywayMigrationInitializer.java