Order DataSourceScriptDatabaseInitializer last
Change the order of `DataSourceScriptDatabaseInitializerDetector` so that it always runs last. This update allows script initialization to be combined with a high-level migration tool such as Flyway. Closes gh-26692
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 DataSourceScriptDatabaseInitializer}.
|
||||
@@ -29,9 +30,16 @@ import org.springframework.boot.sql.init.dependency.DatabaseInitializerDetector;
|
||||
*/
|
||||
class DataSourceScriptDatabaseInitializerDetector extends AbstractBeansOfTypeDatabaseInitializerDetector {
|
||||
|
||||
static final int PRECEDENCE = Ordered.LOWEST_PRECEDENCE - 100;
|
||||
|
||||
@Override
|
||||
protected Set<Class<?>> getDatabaseInitializerBeanTypes() {
|
||||
return Collections.singleton(DataSourceScriptDatabaseInitializer.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOrder() {
|
||||
return PRECEDENCE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
insert into PERSON (first_name, last_name) values ('Phillip', 'Webb');
|
||||
@@ -32,7 +32,7 @@ class SampleFlywayApplicationTests {
|
||||
|
||||
@Test
|
||||
void testDefaultSettings() {
|
||||
assertThat(this.template.queryForObject("SELECT COUNT(*) from PERSON", Integer.class)).isEqualTo(1);
|
||||
assertThat(this.template.queryForObject("SELECT COUNT(*) from PERSON", Integer.class)).isEqualTo(2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user