fundo
Recentemente, durante a inicialização do banco de dados de configuração, encontrou
sql:
init:
schema-locations: classpath:db/schema.sql
data-locations: classpath:db/data.sql
username: sa
password:
A busca de informações na Internet é semelhante, e todas são informações inúteis, então resolvi estudar sozinho a inicialização do banco de dados. Então tem o seguinte.
Observações:
Para resolver o problema de que o banco de dados não pode ser inicializado corretamente, a configuração do banco de dados foi alterada. Para obter detalhes, consulte
private static List<String> scriptLocations(List<String> locations, String fallback, String platform) {
if (locations != null) {
return locations;
}
List<String> fallbackLocations = new ArrayList<>();
fallbackLocations.add("optional:classpath*:" + fallback + "-" + platform + ".sql");
fallbackLocations.add("optional:classpath*:" + fallback + ".sql");
return fallbackLocations;
}
Obviamente, quando a configuração está errada, o padrão é do classpath
optional:classpath*:" + fallback + "-" + platform + ".sql"
"optional:classpath*:" + fallback + ".sql"
Buscar dados e fallback são dados ou esquema e plataforma é tudo.
Portanto, a configuração correta deve ser
spring:
datasource:
schema: classpath:/db/table.sql;/db/table1.sql
data: classpath:/db/data.sql
data-username: sa
schema-username: sa
schema-password:
data-password:
initialization-mode: always
Entre eles, o modo de inicialização deve ser sempre
configuração
DataSourceProperties
Inicialização da fonte de dados
AbstractScriptDatabaseInitializer
DataSourceScriptDatabaseInitializer
R2dbcScriptDatabaseInitializer
Configuração relacionada ao H2
H2ConsoleAutoConfiguration
H2ConsoleProperties