带有 Postgresql 的 Grails:无法在适当的模式中创建表
Posted
技术标签:
【中文标题】带有 Postgresql 的 Grails:无法在适当的模式中创建表【英文标题】:Grails with Postgresql : can't create table in appropriate schema 【发布时间】:2017-09-18 20:01:06 【问题描述】:我想将 Grails 3.3.0 与 Postgresql 数据库 以及三个模式一起使用:openlearning、data 和 contrib。 在域类中,我指定了我想要的模式(见下文)。 我的问题是表只在公共架构中创建,而不是在适当的架构中。
如何在正确的架构中创建表?
注意:表都是在公共架构中创建的。其他架构已创建但为空。它们不包含任何表。
问题域类:
package fr.dr.openlearning
class Question
static mapping =
id generator: 'increment',params:[sequence:'incr']
schema : "data"
application.yml:
dataSource:
driverClassName: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/openlearning
username: postgres
password: XXX
pooled: true
jmxExport: true
environments:
development:
dataSource:
dbCreate: create-drop
dataSources:
data:
dbCreate: create-drop
contrib:
dbCreate: create-drop
【问题讨论】:
【参考方案1】:在您的 application.yml 文件中将 dbCreate: create-drop 更改为 dbCreate:创建。
【讨论】:
感谢答案,但它是一样的。表只在公共模式中创建。【参考方案2】:按照以下步骤操作:
-
以超级管理员身份在数据库中创建新架构
将您的用户名和密码更改为
application.yml
中的新架构
将您的dbCreate: create-drop
更改为dbCreate: update
【讨论】:
感谢您的回答,我会测试一下,稍后再回复您以上是关于带有 Postgresql 的 Grails:无法在适当的模式中创建表的主要内容,如果未能解决你的问题,请参考以下文章
如何解决实体映射中的 Grails 错误重复列?在现有的 Postgresql 数据库上
Grails Spring Security Core无法登录