Skip to content

Commit

Permalink
Order DataSourceScriptDatabaseInitializer last
Browse files Browse the repository at this point in the history
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
  • Loading branch information
philwebb committed Jun 8, 2021
1 parent dafd511 commit 6ab2df5
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 1 deletion.
Expand Up @@ -21,6 +21,7 @@

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}.
Expand All @@ -29,9 +30,16 @@
*/
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');
Expand Up @@ -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);
}

}

0 comments on commit 6ab2df5

Please sign in to comment.