将初始数据导入spring boot app

时间:2016-12-06 09:08:01

标签: database hibernate spring-boot import spring-data-jpa

根据文件 http://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html在启动时导入数据,您可以在application.properties中定义这两个属性:

spring.datasource.data=data.sql
spring.datasource.schema=schema.sql

当你同时拥有这两个文件时,这是有效的,但我没有架构。我正在使用hibernate生成数据库模式

spring.jpa.hibernate.ddl-auto=create-drop

以前的解决方法Importing Data with spring boot是为schema.sql空白定义文件,但它不再起作用了。如果文件无法blank or null,我将获得例外。

在spring应用程序中,我只是定义了

<jdbc:initialize-database data-source="simpleDataSource">
    <jdbc:script location="classpath:dbscripts/data.sql"/>
</jdbc:initialize-database>

并且有效。

有没有办法在springBoot中也有相同的行为?

2 个答案:

答案 0 :(得分:2)

只需删除schema.sql +配置选项,Spring Boot应自动选择sata.sql

答案 1 :(得分:1)

根据spring源代码 - 仅当data.sql文件存在且不为空时才会调用schema.sql。因此,如果您只需要data.sql中的脚本,请向schema.sql添加一些简单的查询,例如

SELECT 1;

同样在application.properties添加

spring.datasource.initialization-mode=always

因为默认值仅用于嵌入数据源。