Spring Boot JPA Schema Initialization

时间:2016-11-15 00:01:00

标签: postgresql spring-boot spring-data-jpa spring-jdbc

我想在我的spring启动项目中使用DLL脚本初始化我的数据源(当然只在开发期间)。正如文档here中所提到的,我将spring.datasource.schema属性设置为src/main/resources/postgresql/define-schema.sql中的DLL脚本。

spring:
  profiles: dev
  datasource:
    platform: postgresql
    driver-class-name: org.postgresql.Driver
    url: jdbc:postgresql://localhost:5432/postgres
    username: postgres
    password: ****
    initialize: true
    schema: ./postgresql/define-schema.sql
    continue-on-error: false
  jpa:
    hibernate:
      ddl-auto: validate
      generate-ddl: false
      show-sql: true

但是脚本不会被执行。我也尝试将它放在类路径根目录并将其命名为schema.sql ...没有任何反应。

选择dev个人资料,至少我在日志中看到它:The following profiles are active: dev 应用程序比JPA模式验证失败。

我从休眠中获得的唯一警告: Found use of deprecated [org.hibernate.id.SequenceGenerator] sequence-based id generator; use org.hibernate.id.enhanced.SequenceStyleGenerator instead. See Hibernate Domain Model Mapping Guide for details. 但我不认为这与初始化问题有任何关系。

我的依赖项中有spring-boot-security-starter但尚未配置,可能是问题源吗?

有人认识到一个重大的错字,还有其他错误吗?

期待您的回音!

放大器

1 个答案:

答案 0 :(得分:0)

使用classpath

添加sql脚本的路径

示例:

spring.datasource.schema=classpath:/postgresql/define-schema.sql