2009-08-27 19 views
22

Ho un'app Grails che carica i suoi dati da file xml e consegna feed rss via roma. Non ho alcuna classe di dominio e la mia app non ha origine dati. Non voglio che Grails carichi una memoria in hsql db quando l'applicazione non ne ha bisogno. L'eliminazione del file DataSource.groovy mi impedisce di avviare l'app Web, sembra che sia richiesta l'origine dati, ma c'è qualcosa che posso fare se la mia applicazione non ha bisogno di un'origine dati?Posso configurare Grails senza origine dati?

risposta

19

Le seguenti fasi di lavoro per una nuova applicazione (Grails 1.1.1) per l'esecuzione senza utilizzare un DataSource:

grails create-app nodb 
cd nodb 
grails uninstall-plugin hibernate 
rm grails-app/conf/DataSource.groovy 
grails create-controller Foo 
<add "render "hi bar" to the index closure of ./grails-app/controllers/FooController.groovy> 
grails run-app 
http://localhost:8080/nodb/foo - prints hi bar 

per un app esistente almeno la versione 1.1 (pensare che è quando Hibernate è stato fatto un plugin) dovresti essere in grado di disinstallare-plug-in ed eliminare il file DataSource.groovy.

4

Il database in memoria è molto leggero, quindi è necessario attenersi a questo se non è necessario un vero database.

+2

Abbiamo avuto un problema simile. La distribuzione di più di un'app grails sulla stessa istanza di tomcat con le impostazioni dell'origine dati predefinite non funziona. Credo che questo sia dovuto al fatto che le istanze hSQL usano lo stesso su file di blocco del disco o qualcosa del genere. – Gennadiy

+2

Sì, l'origine dati di produzione predefinita utilizza un archivio dati hql. Non è possibile utilizzare lo stesso nome file per più di 1 app Grails, quindi è necessario modificare il nome del database nell'origine dati. È piuttosto fastidioso. Essere in grado di non avere semplicemente un'origine dati sarebbe comunque preferibile. Anche se è leggero, se non lo userai perché farlo lì. –

5

Sono stato in grado di commentare l'origine dati e ottenere un'app predefinita di Grails da eseguire. Commentare vostra sezione di produzione allo stesso modo ho commentato il seguente codice nel datasource.groovy


/* development { 
     dataSource { 
      dbCreate = "create-drop" // one of 'create', 'create-drop','update' 
      url = "jdbc:hsqldb:mem:devDB" 
     } 
    }*/ 

Sono stato anche in grado di rimuovere l'ibernazione plug utilizzando "graal disinstallare-plugin ibernazione" e avere ancora la corsa di default app . Non ho fatto test approfonditi con questo, ma spero che questo funzioni per voi.

2

Questa è una buona guida: http://digitalbreed.com/2011/using-grails-without-a-database

Rimuovere Hibernate Grails’ plugin.

  1. graal disinstallare plug-ibernazione
  2. Eliminare il file di configurazione di origine dati conf/DataSource.groovy
  3. esplicitamente dichiarare servizi come non transazionale. L'impostazione predefinita è true e i metodi della classe vengono sottoposti a proxy, ma senza il plug-in di Hibernate non è presente un gestore transazioni e la distribuzione avrà esito negativo.

    class someservice { transazionale static = false // ...}

  4. oggetti utilizzare il comando al posto di oggetti di dominio, soprattutto se avete bisogno di convalida.

Problemi correlati