Initialize a Database Using Basic SQL Scripts
Spring Boot can automatically create the schema (DDL scripts) of your JDBC DataSource
or R2DBC ConnectionFactory
and initialize it (DML scripts). It loads SQL from the standard root classpath locations: schema.sql
and data.sql
, respectively. In addition, Spring Boot processes the schema-${platform}.sql
and data-${platform}.sql
files (if present), where platform
is the value of spring.sql.init.platform
. This allows you to switch to database-specific scripts if necessary. For example, you might choose to set it to the vendor name of the database (hsqldb
, h2
, oracle
, mysql
, postgresql
, and so on). By default, SQL database initialization is only performed when using an embedded in-memory database. To always initialize an SQL database, irrespective of its type, set spring.sql.init.mode
to always
. Similarly, to disable initialization, set spring.sql.init.mode
to never
. By default, Spring Boot enables the fail-fast feature of its script-based database initializer. This means that, if the scripts cause exceptions, the application fails to start. You can tune that behavior by setting spring.sql.init.continue-on-error
.