I have a Grails app that loads its data from xml files and delivers rss feeds via rome. I don\'t have any domain classes and my app has no datasource. I don\'t want Grails t
This is a good guide: http://digitalbreed.com/2011/using-grails-without-a-database
Remove Grails’ Hibernate plugin.
Explicitly declare services as non-transactional. The default is true and your class methods would be proxied, but without the Hibernate plugin there is no transaction manager and the deployment will fail.
class SomeService { static transactional = false // ... }
Use command objects instead of domain objects, particularly if you need validation.
The following steps work for a new app (Grails 1.1.1) to run without using a 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
For an existing app on at least version 1.1 (think that's when hibernate was made a plugin) you should be able to just uninstall-plugin and delete the DataSource.groovy file.
The in-memory database is very lightweight so you should stick with that if you don't need a real database.
I was able to comment out the data source and get a default grails app to run. Comment out your production section in the same way I commented out the following code in datasource.groovy
/* development {
dataSource {
dbCreate = "create-drop" // one of 'create', 'create-drop','update'
url = "jdbc:hsqldb:mem:devDB"
}
}*/
I was also able to remove the hibernate plugin using "grails uninstall-plugin hibernate" and still have the default app run. I haven't done extensive testing with this but hopefully this works for you.