Can I configure Grails with no datasource?

与世无争的帅哥 提交于 2019-11-27 20:29:14

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.

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.

The in-memory database is very lightweight so you should stick with that if you don't need a real database.

This is a good guide: http://digitalbreed.com/2011/using-grails-without-a-database

Remove Grails’ Hibernate plugin.

  1. grails uninstall-plugin hibernate
  2. Delete the datasource configuration file conf/DataSource.groovy
  3. 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 // ... }

  4. Use command objects instead of domain objects, particularly if you need validation.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!