我可以配置没有数据源的Grails吗?

时间:2009-08-27 21:58:16

标签: database grails groovy datasource

我有一个Grails应用程序,它从xml文件加载数据并通过罗马提供rss提要。我没有任何域类,我的应用程序没有数据源。我不希望Grails在应用程序不需要时加载内存中的hsql db。删除DataSource.groovy文件阻止我启动Web应用程序,似乎需要数据源,但如果我的应用程序不需要数据源,我还能做些什么吗?

4 个答案:

答案 0 :(得分:21)

以下步骤适用于不使用数据源的新应用程序(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成为插件时),您应该只需卸载-lugin并删除DataSource.groovy文件。

答案 1 :(得分:6)

我能够注释掉数据源并获取默认的grails应用程序来运行。以与我在datasource.groovy

中注释掉以下代码相同的方式注释掉您的生产部分

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

我还能够使用“grails uninstall-plugin hibernate”删除hibernate插件,并且仍然运行默认应用程序。我没有对此进行过广泛的测试,但希望这对你有用。

答案 2 :(得分:4)

内存数据库非常轻量级,因此如果您不需要真正的数据库,则应该坚持使用它。

答案 3 :(得分:2)

这是一本很好的指南:http://digitalbreed.com/2011/using-grails-without-a-database

删除Grails的Hibernate插件。

  1. grails uninstall-plugin hibernate
  2. 删除数据源配置文件conf / DataSource.groovy
  3. 明确声明服务为非事务性的。默认值为true,您的类方法将被代理,但如果没有Hibernate插件,则没有事务管理器,部署将失败。

    class SomeService {     static transactional = false     // ... }

  4. 使用命令对象而不是域对象,尤其是在需要验证时。