1

我想将Grails 3.3.0Postgresql 数据库以及三个模式一起使用:openlearning、data 和 contrib。在域类中,我指定了我想要的模式(见下文)。我的问题是表只在公共模式中创建,而不是在适当的模式中。

如何在正确的架构中创建表?

注意:表都是在公共模式中创建的。其他模式已创建但为空。它们不包含任何表。

问题域类:

package fr.dr.openlearning
class Question {

 static mapping = {
 id generator: 'increment',params:[sequence:'incr']
 schema : "data"
}

应用程序.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
4

2 回答 2

1

在您的 application.yml 文件中,将 dbCreate: create-drop 更改为 dbCreate: create

于 2017-09-19T17:45:54.267 回答
1

按着这些次序:

  1. 以超级管理员身份在数据库中创建新架构
  2. 将您的用户名和密码更改为您的新架构application.yml
  3. 改变你dbCreate: create-dropdbCreate: update
于 2017-09-21T06:29:29.903 回答