根据文件 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中也有相同的行为?
答案 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
因为默认值仅用于嵌入数据源。