2009-09-12 9 views
2

Version Grails: 1.1généré par Grails ne tient pas compte URL dataSource

Tomcat version: 5.5

Le problème: L'application ne pas utiliser les sources de données d'URL.

Il semble - il utilise une autre source de données - mais il ne semble pas être en mémoire DB- puisque je peux voir les données persistées entre les sessions.

J'ai même essayé de donner un nom de base de données non-extensible -et l'application fonctionne correctement. Par ce que je veux dire que je suis en mesure de persister les données et de l'extraire bien dans l'application Je suis incapable de comprendre où les données sont persistées !!!

I généré le fichier de guerre en utilisant la guerre Commande- de Grails

Voici comment la config dataSource ressemble

dataSource { 

    pooled = true 

    driverClassName = "com.mysql.jdbc.Driver" 

    username = "user" 

    password = "pwd" 

} 

hibernate { 

    cache.use_second_level_cache=true 

    cache.use_query_cache=true 

    cache.provider_class='com.opensymphony.oscache.hibernate.OSCacheProvider' 

} 

environments { 

    production { 

     dataSource { 

      dbCreate = "create" 

      url = "jdbc:mysql://localhost:3307/mydb?autoReconnect=true" 

      dialect = org.hibernate.dialect.MySQL5Dialect 

     } 

    } 

} 
+0

Avez-vous trouvé la solution? J'ai le même problème. – user2427

+0

Pas vraiment - après un moment j'ai arrêté de faire face à ce problème. J'ai déduit que je faisais une erreur. –

Répondre

0

Quelle preuve que vous cherchez à vous dit Grails ne tient pas compte de votre source de données?

Avez-vous utilisé MySQL avant d'exécuter Grails pour créer mydb, ajouter un utilisateur avec "usr" et "pwd", et accorder des autorisations appropriées? Grails ne fait pas ça pour vous. Une fois la base de données existante, Grails créera le schéma pour vous.

Vous devriez être capable de vous connecter, d'utiliser mydb, et "show tables" pour voir le schéma.

Mais vous devez d'abord créer la base de données.

+0

1) Si je mets un nom de serveur inexistant - il n'y a pas d'erreurs - le CRUD fonctionne comme ususal 2) J'utilise eatj.com pour héberger l'application - et j'ai confirmé que la base de données le schéma existe 3) Aucune table n'a été créée. Je peux essayer de créer les tables moi-même - mais cela ne va pas aider - car il ne semble pas du tout utiliser l'URL –

2

Vous devez définir une source de données de production car c'est ce que les grails utilisent lorsqu'ils génèrent une guerre.


development { 

     dataSource { 

       dbCreate = "create" 

       url = "jdbc:mysql://localhost:3307/mydb?autoReconnect=true" 

       dialect = org.hibernate.dialect.MySQL5Dialect 
} 
     } 

production { 

     dataSource { 

       dbCreate = "create" 

       url = "jdbc:mysql://localhost:3307/mydb?autoReconnect=true" 

       dialect = org.hibernate.dialect.MySQL5Dialect 
} 
     } 

+0

Désolé c'est ma faute de frappe J'ai la production mis en place - même que le développement (En fait, le test est également le même) –

+0

par défaut Grails utilise l'environnement 'prod' lors de la construction d'une guerre, si vous voulez le remplacer, vous pouvez lancer 'grails dev war' –