[Série Spring] Inicialização do banco de dados

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

Acho que você gosta

Origin blog.csdn.net/wenxueliu/article/details/131872893
Recomendado
Clasificación