2009-08-27 9 views
22

Tengo una aplicación de Grails que carga sus datos de archivos xml y entrega rss feeds a través de roma. No tengo ninguna clase de dominio y mi aplicación no tiene ninguna fuente de datos. No quiero que Grails cargue un archivo en la memoria hsql db cuando la aplicación no lo necesita. Eliminar el archivo DataSource.groovy me impide iniciar la aplicación web, parece que se requiere el origen de datos, pero ¿hay algo que pueda hacer si mi aplicación no necesita un origen de datos?¿Puedo configurar Grails sin fuente de datos?

Respuesta

19

Los siguientes pasos de trabajo para una nueva aplicación (Grails 1.1.1) para funcionar sin necesidad de utilizar una fuente de datos:

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 

Para una aplicación existente en al menos la versión 1.1 (creo que es cuando hibernación se hizo un plugin) Debería poder desinstalar plugins y eliminar el archivo DataSource.groovy.

4

La base de datos en memoria es muy liviana, por lo que debe mantenerla si no necesita una base de datos real.

+2

Nos hemos encontrado con un problema similar. La implementación de más de una aplicación de grails en la misma instancia de tomcat con la configuración de origen de datos predeterminada no funciona. Creo que esto se debe a que las instancias de hSQL usan lo mismo en los archivos de bloqueo de disco o algo así. – Gennadiy

+2

Sí, el origen de datos de producción predeterminado utiliza un almacén de datos hql. No puede usar el mismo nombre de archivo para más de 1 aplicación de Grails, por lo que debe cambiar el nombre de la base de datos en el origen de datos. Es bastante molesto Ser capaz de simplemente no tener un origen de datos aún sería preferible. Incluso si es liviano, si no vas a usarlo, ¿por qué lo tienes? –

5

Pude comentar la fuente de datos y obtener una aplicación predeterminada de Grails para ejecutar. Comente su sección de producción de la misma manera lo comenté a cabo el siguiente código en datasource.groovy


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

yo también era capaz de eliminar el plugin de hibernación usando "griales desinstalar-plugin hibernación" y aún así tener la carrera aplicación por defecto . No he hecho pruebas exhaustivas con esto, pero espero que esto funcione para ti.

2

Ésta es una buena guía: http://digitalbreed.com/2011/using-grails-without-a-database

Retire Hibernate Grails plugin.

  1. griales desinstalar-plugin hibernate
  2. eliminar el archivo de configuración de fuente de datos conf/DataSource.groovy
  3. declarar explícitamente como servicios no transaccional. El valor predeterminado es verdadero y los métodos de clase serían proxies, pero sin el complemento de Hibernate no hay un administrador de transacciones y la implementación fallará.

    SomeService clase { transaccional estática = false // ...}

  4. objetos Uso de comandos en lugar de objetos de dominio, sobre todo si necesita validación.

Cuestiones relacionadas