2014-05-11 5 views
0

Comment créer/ou m'assurer qu'un index existe pour ma classe de domaine en utilisant Grails 2.4RC1/Mongo GORM Plugin et Mongo DB 2.6 en mode --auth:?Grailles 2.4RC1/Mongo DB Plugin/Mongo Db 2.6/Authentifié

Supposons: 1) J'ai un utilisateur valide identifié avec les rôles appropriés dans mon instance Mongo. 2) Je suis en mesure d'authentifier à cet utilisateur en utilisant la configuration connectionString dans DataSource.groovy 3) Je définis dans le mappage statique {index lname: true} pour mon domaine Personne classe

je vais obtenir une erreur au démarrage indiquant que mon utilisateur n'a pas les droits pour exécuter la commande createIndex. Je ne reçois pas cette erreur quand mongo n'est pas exécuté en mode --auth

J'ai un travail autour, que je vais attacher à cette question, mais je pense que cela fonctionnerait comme documenté.

+0

J'ai ajouté un problème JIRA pour ce problème: https://jira.grails.org/browse/GPMONGODB-375 –

Répondre

0

Vous pouvez adresser l'instance mongo et utiliser le faible niveau api pour gérer vos indices comme indiqué ci-dessous:

Dans votre Bootstrap.groovy vous pouvez ajouter:

def mongo 

def init = { servletContext -> 
    def db = mongo.getDB("yourdbname") 
    db.person.ensureIndex([lname: 1, fname:1]) 
} 

pas ce que je considère la meilleure solution, mais cela semble fonctionner.

Questions connexes