我正在使用带有默认配置的spring boot以及flyway和hibernate。我想知道执行顺序。
根据文档Flyway checks the version of the database and applies new migrations automatically before the rest of the application starts.
在哪里可以找到确认该声明的源代码?确定执行顺序的地方?
答案 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