Order detector for AbstractDataSourceInitializers
Previously, the detector for AbstractDataSourceInitializers used the default detector order. This resulted in the initializers detected initializers running before Flyway. Constrastingly, the detector for DataSourceScriptDatabaseInitializers uses a custom order so its detected initializers would run after Flyway. This commit aligns the order of the detector for AbstractDataSourceInitializers with the order of the detector for DataSourceScriptDatabaseInitializers. This ensures that script-based initialization runs in the same order with respect to Flyway, irrespective of which initializer implementation is driving it. Fixes gh-28079
This commit is contained in:
@@ -21,6 +21,7 @@ import java.util.Set;
|
||||
|
||||
import org.springframework.boot.sql.init.dependency.AbstractBeansOfTypeDatabaseInitializerDetector;
|
||||
import org.springframework.boot.sql.init.dependency.DatabaseInitializerDetector;
|
||||
import org.springframework.core.Ordered;
|
||||
|
||||
/**
|
||||
* A {@link DatabaseInitializerDetector} for {@link AbstractDataSourceInitializer}.
|
||||
@@ -29,9 +30,16 @@ import org.springframework.boot.sql.init.dependency.DatabaseInitializerDetector;
|
||||
*/
|
||||
class AbstractDataSourceInitializerDatabaseInitializerDetector extends AbstractBeansOfTypeDatabaseInitializerDetector {
|
||||
|
||||
private static final int PRECEDENCE = Ordered.LOWEST_PRECEDENCE - 100;
|
||||
|
||||
@Override
|
||||
protected Set<Class<?>> getDatabaseInitializerBeanTypes() {
|
||||
return Collections.singleton(AbstractDataSourceInitializer.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOrder() {
|
||||
return PRECEDENCE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user