У меня есть приложение Grails, которое загружает его данные из xml файлов и поставляет rss-каналы через rome. У меня нет классов домена, и у моего приложения нет источника данных. Я не хочу, чтобы Grails загружал в память hsql db, когда приложение не нуждается в этом. Удаление файла DataSource.groovy не позволяет мне запускать веб-приложение, кажется, что требуется источник данных, но есть ли что-нибудь, что я могу сделать, если моему приложению не нужен источник данных?
Могу ли я настроить Grails без источника данных?
Ответ 1
Следующие шаги работают для нового приложения (Grails 1.1.1) для запуска без использования источника данных:
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
Для существующего приложения, по крайней мере, версии 1.1 (подумайте, что когда hibernate был создан плагин) вы должны иметь возможность просто удалить плагин и удалить файл DataSource.groovy.
Ответ 2
Мне удалось прокомментировать источник данных и запустить приложение grails по умолчанию. Комментируйте свою производственную секцию таким же образом, как я прокомментировал следующий код в datasource.groovy
/* development {
dataSource {
dbCreate = "create-drop" // one of 'create', 'create-drop','update'
url = "jdbc:hsqldb:mem:devDB"
}
}*/
Мне также удалось удалить плагин hibernate с помощью "grails uninstall-plugin hibernate" и по-прежнему иметь запуск приложения по умолчанию. Я не проводил тщательного тестирования с этим, но, надеюсь, это работает для вас.
Ответ 3
База данных в памяти очень легкая, поэтому вы должны придерживаться этого, если вам не нужна настоящая база данных.
Ответ 4
Это хорошее руководство: http://digitalbreed.com/2011/using-grails-without-a-database
Снимите плагин Grails Hibernate.
- grails uninstall-plugin hibernate
- Удалить файл конфигурации источника данных conf/DataSource.groovy
-
Явно объявлять сервисы как не транзакционные. Значение по умолчанию истинно, и ваши методы класса будут проксированы, но без плагина Hibernate нет диспетчера транзакций, и развертывание не будет выполнено.
класс SomeService { static transactional = false //... }
-
Используйте объекты команд вместо объектов домена, особенно если вам нужна проверка.