Can I configure Grails with no datasource?

后端 未结 4 1395
猫巷女王i
猫巷女王i 2020-12-05 14:18

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

相关标签:
4条回答
  • 2020-12-05 14:26

    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.

    0 讨论(0)
  • 2020-12-05 14:32

    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.

    0 讨论(0)
  • 2020-12-05 14:37

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

    0 讨论(0)
  • 2020-12-05 14:46

    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.

    0 讨论(0)
提交回复
热议问题