未在指定架构中创建表
Posted
技术标签:
【中文标题】未在指定架构中创建表【英文标题】:Tables are not created in the specified schema 【发布时间】:2016-08-13 10:17:29 【问题描述】:我正在尝试将 spring boot 与 postgres db 集成。 一切正常,除了表是在公共模式中创建的,即使我在 application.properties 中指定了特定模式
spring.datasource.schema=AngSpring
application.properties
spring.jpa.database=POSTGRESQL
spring.datasource.platform=postgres
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.database.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/NGP_DB
spring.datasource.schema=AngSpring
spring.datasource.username=jdbcusr
spring.datasource.password=password
您可以在 postgres db 屏幕截图中看到 task_list 表是在“公共”架构下创建的。根据属性文件,它应该属于“AngSpring”模式。
如果我在代码中做错了什么,请纠正我。
【问题讨论】:
您使用的是哪个 Spring Boot 版本?我猜spring.datasource.schema
属性用于指定concrete schema script file 在您的应用程序中的位置以生成数据库,因此您应该删除它。
相反,您似乎想使用 Hibernate 从您的实体中猜测的那个,并将其放在您的 postgres 数据库中的特定模式位置。改用 url 中的架构:
spring.datasource.url=jdbc:postgresql://localhost:5432/NGP_DB?currentSchema=AngSpring
另请参阅:
Is it possible to specify schema when connecting to postgres with JDBC?【讨论】:
以上是关于未在指定架构中创建表的主要内容,如果未能解决你的问题,请参考以下文章