Я пытаюсь настроить свойство spring.flyway.init-sqls
на запуск небольшого оператора до того, как Flyway что-нибудь сделает со сценариями миграции, но я изо всех сил пытаюсь заставить его работать так, как я ожидал. У меня в application.yml
есть следующее:
spring:
datasource.url: <some url here>
flyway.init-sqls: SET OWNER <owner of tables created via migration scripts>
Теперь в FlywayAutoConfiguration.FlywayConfiguration
есть метод, который выглядит так:
private DataSource configureDataSource(FluentConfiguration configuration, FlywayProperties properties,
DataSourceProperties dataSourceProperties, DataSource flywayDataSource, DataSource dataSource) {
if (properties.isCreateDataSource()) {
String url = getProperty(properties::getUrl, dataSourceProperties::determineUrl);
String user = getProperty(properties::getUser, dataSourceProperties::determineUsername);
String password = getProperty(properties::getPassword, dataSourceProperties::determinePassword);
configuration.dataSource(url, user, password);
if (!CollectionUtils.isEmpty(properties.getInitSqls())) {
String initSql = StringUtils.collectionToDelimitedString(properties.getInitSqls(), "\n");
configuration.initSql(initSql);
}
}
else if (flywayDataSource != null) {
configuration.dataSource(flywayDataSource);
}
else {
configuration.dataSource(dataSource);
}
return configuration.getDataSource();
}
Это единственное место, где я могу найти любое использование spring.flyway.init-sqls
, но я заметил, что properties.isCreateDataSource()
никогда не возвращает true
, если не определены spring.flyway.url
или spring.flyway.user
. Следовательно, код, использующий init-sqls
, никогда не достигается.
Это ожидаемое поведение? Я ожидал, что пока установлен spring.datasource.url
, необязательно определять spring.flyway.url
, но, похоже, так оно и есть, потому что когда я делаю это, кажется, что он работает:
spring:
datasource.url: <some url here>
flyway:
init-sqls: SET OWNER <owner of tables created via migration scripts>
url: ${spring.datasource.url}
Итак, у меня есть обходной путь, но я хотел бы услышать, не хватает ли чего-то, что мне не хватает?