Spring Boot2.x 必须添加 initialization-mode配置才会执行,默认为EMBEDDED也就是嵌入式数据库(H2这种),如果要在mysql下执行需要设置成为always
把需要初始化的sql文件放在项目resources目录下,也可以是其他目录(需要写入绝对路径相对路径不方便部署)
如果是项目resources目录,则路径必须添加classpath:
如果有多个sql文件,可以用逗号分隔
配置文件
spring:
datasource:
initialization-mode: always
schema: classpath:mysql_schema.sql
schema-username: root
schema-password:
username: root
password:
data: classpath:mysql_data.sql
data-username: root
data-password:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://localhost:3306/spring_security_jpa_demo
jpa:
generate-ddl: false
show-sql: true
对于内存数据,initialization-mode不需要配置,resources目录下有schema.sql文件就会执行.