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

fhg3lkii  于 2023-06-22  发布在  Spring
关注(0)|答案(6)|浏览(116)

如何指定Sping Boot 使用的数据库模式?我使用默认的hibernate(=default)和postgres(但我希望有一个通用的解决方案)。我知道如何指定JDBC URL:

spring.datasource.url=jdbc:postgresql:db_name

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

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

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

ifmq2ha2

ifmq2ha21#

用于application.properties

spring.jpa.properties.hibernate.default_schema=your_scheme

application.yaml的OR:

spring:
  jpa:
    properties:
      hibernate.default_schema: your_scheme

Sping Boot 参考指南:
创建本地EntityManagerFactory时,spring.jpa.properties.*中的所有属性都作为普通JPA属性(去掉前缀)传递
参见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

3ks5zfa0

3ks5zfa02#

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

spring.datasource.hikari.schema=schema

在这里查看HikariCP配置参数的完整列表。

h9a6wy2h

h9a6wy2h3#

spring:
  jpa:
    properties:
      hibernate:
        default_schema: your_schema_name
9njqaruj

9njqaruj4#

spring.jpa.properties.hibernate.default_schema=your_scheme

spring:jpa:属性:Hibernate.default_schema:你的方案
使用HikariDataSource(例如spring.jpa.properties. hibernate.default_schema)将被忽略,您还必须设置
spring.datasource.hikari.schema=your_scheme

kzipqqlq

kzipqqlq5#

我遇到了错误:无法从数据源org.postgresql.util.PSQLException获取连接:错误:不支持的启动参数:搜索路径
解决方案:application-xyz_dev.yml
url:jdbc:postgresql://localhost:8080/your_database?search_path=your_scheme&stringtype=unspecified
spring:jpa:属性:Hibernate.default_schema:你的方案

7qhs6swi

7qhs6swi6#

我正在将一个Java应用程序从MySQL迁移到SQL Server,并将spring.jpa.properties.hibernate.default_schema添加到应用程序属性文件中。

相关问题