【发布时间】:2019-10-28 20:38:28
【问题描述】:
我的spring-boot配置是:
spring:
profiles: database
datasource:
platform: mysql
continueOnError: false
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test
username: root
data: data-mysql.sql
schema: schema-mysql.sql
batch:
initializer:
enabled: true
initialize-schema: always
job:
enabled: true
jpa:
database-platform: org.hibernate.dialect.MySQLDialect
show-sql: true
hibernate:
ddl-auto: create-drop
我的期望是:
-
spring-batchschema每次都会从一开始创建; -
schema-mysql.sql中指定的customer表将在每个开始时间创建; -
customer数据将在每次开始时间填充data-mysql.sql中指定;
但实际结果是:
-
spring-batchschema只是第一次创建; -
customer表从未填充数据; -
customer表从未创建;
问题:
我应该如何更改我的配置以获得下一个结果:
- 如果
spring-batchschema只创建一次或每次开始时间都可以(但应该为缺勤情况创建); -
customer表只能创建一次或每次; -
如果没有数据,
customer表应该填充数据。
详情:
- spring-boot 2.2.0.M3;
- Gradle 5.4.1;
- mariadb.
【问题讨论】:
-
首先删除hibernate: ddl-auto: create-drop 因为你已经在使用schema.sql了
-
@SimonMartinelli,谢谢。我知道,这不是我的目的所必需的,但我尝试了很多不同的组合,但没有任何效果。 (我的意思是
ddl-auto=never或者缺席也不行)
标签: java mysql spring-boot spring-batch