# 80.3 初始化数据库

Spring Boot可以自动创建`数据源`的模式（DDL脚本）并初始化它（DML脚本）。它从标准的根类路径位置加载SQL（`schema.sql`与`data.sql`）。此外，Spring Boot处理`schema-${platform}.sql`和`data-${platform}.sql`文件(如果存在)，其中`platform`是`spring.datasource.platform`的值。这允许你在必要时切换到特定于数据库的脚本。例如，你可以选择将其设置为数据库的供应商名称(`hsqldb`、`h2`、`oracle`、`mysql`、`postgresql`等)。

Spring Boot自动创建嵌入式`数据源`的模式。可以通过使用`spring.datasource.initialization-mode`属性定制此行为(也可以是`always`或`never`)。

默认情况下，Spring Boot支持Spring JDBC初始化器的故障快速特性。这意味着，如果脚本导致异常，应用程序将无法启动。你可以通过设置`spring.datasource.continue-on-error`来调整该行为。

**注** 在基于JPA的应用程序中，你可以选择让Hibernate创建模式或使用`schema.sql`。但你不能两者都做。如果使用`schema.sql`，请确保禁用`spring.jpa.hibernate.ddl-auto`。
