防止在grails数据源更新模式下引导数据

时间:2014-03-27 07:27:42

标签: grails grails-2.3

如何防止在grails应用程序中引导数据。当我们像这样配置DataSource.groovy时

 development {
    dataSource {
        dbCreate = "update"
        url = "jdbc:mysql://localhost:3306/test"
        pooled = true
        driverClassName = "com.mysql.jdbc.Driver"
        dialect = org.hibernate.dialect.MySQL5InnoDBDialect
        username = "root"
        password = "root"
    }

}

BootStrap.groovy中

class BootStrap {
def bootstrapService
def grailsApplication
def init = { servletContext ->
    switch (Environment.getCurrent().name) {
        case "dev":
            bootstrapService.bootstrapDummyData()
            break;
        case "test":
            bootstrapService.bootstrapDummyData()
            break;
    }
}
def destroy = {
}

当我将数据源配置为更新模式时,我希望不要调用bootstrapService.bootstrapDummyData()。即dbCreate = "update"

2 个答案:

答案 0 :(得分:2)

 class BootStrap {
 def bootstrapService
 def grailsApplication
 def init = { servletContext -> 
 if(grailsApplication.config.dataSource.dbCreate == "create-drop"){
    switch (Environment.getCurrent().name) {
        case "dev":
            bootstrapService.bootstrapDummyData()
            break;
        case "test":
            bootstrapService.bootstrapDummyData()
            break;
     }
   }
}

答案 1 :(得分:0)

def init(){

    if(User.list().size()==0)
       objectCreation()
}

def objectCreation(){

def userObject1 = new User()
def userObject2 = new User()


}

以上代码为例。如果用户是在bootstrap中创建的。首先检查用户是否已创建。如果没有创建对象。