下面列出了怎么用org.springframework.boot.autoconfigure.flyway.FlywayMigrationStrategy的API类实例代码及写法,或者点击链接到github查看源代码。
@Bean
public FlywayMigrationStrategy cleanMigrateStrategy() {
FlywayMigrationStrategy strategy = new FlywayMigrationStrategy() {
@Override
public void migrate(Flyway flyway) {
if (clean) {
logger.info("Clean DB with Flyway");
flyway.clean();
} else {
logger.info("Don't clean DB with Flyway");
}
flyway.migrate();
}
};
return strategy;
}
@Bean
@Primary
public FlywayMigrationStrategy flywayMigrationStrategy() {
return flyway -> {
// terrible hack - using system properties to pass data to migration
System.setProperty(AbstractMigrateUsersToIncludeUsernames.COMMUNITY_PROTOCOL, "HTTP");
System.setProperty(AbstractMigrateUsersToIncludeUsernames.COMMUNITY_HOST, getProperty(COMMUNITY_HOST_PROPERTY, COMMUNITY_HOST));
System.setProperty(AbstractMigrateUsersToIncludeUsernames.COMMUNITY_PORT, getProperty(COMMUNITY_PORT_PROPERTY, String.valueOf(COMMUNITY_PORT)));
flyway.migrate();
System.clearProperty(AbstractMigrateUsersToIncludeUsernames.COMMUNITY_PROTOCOL);
System.clearProperty(AbstractMigrateUsersToIncludeUsernames.COMMUNITY_HOST);
System.clearProperty(AbstractMigrateUsersToIncludeUsernames.COMMUNITY_PORT);
};
}
@Bean
@ConditionalOnMissingBean
public FlywayMigrationStrategy migrationStrategy() {
return flyway -> {
FluentConfiguration alterConf = Flyway.configure(plugin.getWrapper().getPluginClassLoader());
alterConf.configuration(flyway.getConfiguration());
new Flyway(alterConf).migrate();
};
}
@Bean
public FlywayMigrationStrategy repairStrategy() {
return flyway -> {
flyway.repair();
flyway.migrate();
};
}
@Bean
@ConditionalOnProperty(prefix = "spring.flyway", name = "clean-before-migrate")
public FlywayMigrationStrategy migrationStrategy() {
return new FlywaySchemaCleaner(plugin);
}
@Bean
public FlywayMigrationStrategy flywayMigrationStrategy() {
return flyway -> {
log.info("Skipping Flyway migration!");
};
}