2017-09-18 6 views
0

Je veux utiliser Grails 3.3.0 avec une base de données Postgresql et aussi avec trois schémas: openlearning, données et contrib. Dans les classes de domaine, j'ai spécifié le schéma que je veux (voir ci-dessous). Mon problème est que les tables sont créées uniquement dans le schéma public et non dans le schéma approprié.Grails avec Postgresql: ne peut pas créer la table dans le schéma approprié

Comment puis-je créer des tables dans le schéma correct?

note: Les tables sont toutes créées dans le schéma public.Les autres structures sont créées mais sont vides. Elles ne contiennent aucune table.

Question classe Domaine:

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 

Répondre

0

Dans votre fichier application.yml changer le DBCreate: create-drop pour DBCreate: créer .

+0

Merci à la réponse mais c'est la même chose. Les tables ne sont créées que dans un schéma public. – drieu

0

Procédez comme suit:

  1. Créer un nouveau schéma dans la base de données en tant que Super administrateur
  2. Modifier votre nom d'utilisateur et mot de passe que votre nouveau schéma dans application.yml
  3. Changez votre dbCreate: create-drop-dbCreate: update
+0

Merci pour la réponse, je vais le tester et je vous réponds plus tard – drieu