更改 Spring Boot 使用的数据库架构

2022-08-31 13:37:39

如何指定 Spring Boot 使用的数据库模式?我正在使用默认休眠(=default)和postgres(但我希望有一个通用的解决方案)。我知道如何指定JDBC网址:

spring.datasource.url=jdbc:postgresql:db_name

但不幸的是,postgresql不允许在JDBC URL中指定模式。我知道有休眠属性,所以我希望以下属性之一可以工作:hibernate.default_schema

hibernate.default_schema=schema
spring.hibernate.default_schema=schema
spring.jpa.hibernate.default_schema=raw_page

但不幸的是,他们似乎都没有任何结果。


答案 1

用于 :application.properties

spring.jpa.properties.hibernate.default_schema=your_scheme 

或 用于 :application.yaml

spring:
  jpa:
    properties:
      hibernate.default_schema: your_scheme

来自 Spring Boot 参考指南:

在创建本地时,中的所有属性都作为普通 JPA 属性传递(去除前缀)spring.jpa.properties.*EntityManagerFactory

查看 http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-configure-jpa-properties

有关可用属性的完整列表,请参阅 http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-configure-jpa-properties


答案 2

这取决于数据源实现必须使用哪个属性来设置默认架构(引用)。例如,使用HikariDataSource将被忽略,您必须设置spring.jpa.properties.hibernate.default_schema

spring.datasource.hikari.schema=schema

在此处查看 HikariCP 配置参数的完整列表。


推荐