2009-08-27 18 views
22

Mam aplikację Grails, która ładuje swoje dane z plików xml i dostarcza dane RSS rome. Nie mam żadnych klas domeny, a moja aplikacja nie ma źródła danych. Nie chcę, aby Grails ładował pamięć hsql w pamięci, gdy aplikacja nie potrzebuje jej. Usunięcie pliku DataSource.groovy uniemożliwia mi uruchomienie aplikacji internetowej, wydaje się, że wymagane jest źródło danych, ale czy jest coś, co mogę zrobić, jeśli moja aplikacja nie potrzebuje źródła danych?Czy mogę skonfigurować Grails bez źródła danych?

Odpowiedz

19

Poniższe kroki pracować dla nowej aplikacji (Grails 1.1.1), aby uruchomić bez użycia źródło danych:

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 

Dla istniejącej aplikacji na co najmniej w wersji 1.1 (myślę, że to po hibernacji powstał plugin) powinieneś być w stanie odinstalować wtyczkę i usunąć plik DataSource.groovy.

4

Baza danych w pamięci jest bardzo lekka, więc powinieneś trzymać się jej, jeśli nie potrzebujesz prawdziwej bazy danych.

+2

Mamy podobny problem. Wdrażanie więcej niż jednej aplikacji Grails na tej samej instancji tomcat przy domyślnych ustawieniach źródła danych nie działa. Wierzę, że dzieje się tak dlatego, że instancje hSQL używają tego samego na plikach blokujących dyski lub coś takiego. – Gennadiy

+2

Tak, domyślne źródło danych produkcyjnych korzysta z magazynu danych hql. Nie możesz użyć tej samej nazwy pliku dla więcej niż 1 grails aplikacji, więc musisz zmienić nazwę bazy danych w źródle danych. To dość denerwujące. Możliwość wyboru źródła danych nadal byłaby lepsza. Nawet jeśli jest lekki, jeśli go nie użyjesz, po co go mieć. –

5

Udało mi się skomentować źródło danych i uruchomić domyślną aplikację Grails. Komentarz swój dział produkcji w taki sam sposób, w jaki zakomentowanym następujący kod w datasource.groovy


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

byłem też w stanie usunąć za pomocą wtyczki hibernacji „Grails odinstalować plugin hibernacji” i nadal mieć przebieg domyślnej aplikacji . Nie przeprowadziłem z tym obszernych testów, ale mam nadzieję, że to działa dla ciebie.

2

Jest dobrym przewodnikiem: http://digitalbreed.com/2011/using-grails-without-a-database

Usuń Hibernate Grails’ wtyczki.

  1. Grails odinstalować plugin hibernacji
  2. usunąć plik konfiguracyjny źródło danych conf/DataSource.groovy
  3. jawnie zadeklarować usługi jak nietransakcyjnych. Wartością domyślną jest true, a metody klasy są proxy, ale bez wtyczki Hibernate nie ma menedżera transakcji, a wdrożenie nie powiedzie się.

    klasa SomeService {static transakcyjny = false // ... }

  4. obiekty użyć polecenia zamiast obiektów domeny, szczególnie jeśli trzeba walidacji.

Powiązane problemy