带有 Postgresql 的 Grails:无法在适当的模式中创建表

Posted

技术标签:

【中文标题】带有 Postgresql 的 Grails:无法在适当的模式中创建表【英文标题】:Grails with Postgresql : can't create table in appropriate schema 【发布时间】:2017-09-18 20:01:06 【问题描述】:

我想将 Grails 3.3.0Postgresql 数据库 以及三个模式一起使用: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 通过 CAS 单点登录登录

Grails Spring Security Core无法登录

是否可以在 Grails 之外使用 Grails 验证?如何?

Grails 应用程序无法在 tomcat 上加载

将 postgresql 本地复制到远程数据库(都带有密码) - 错误:无法识别选项“区域设置”