Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GrailsH2数据库将不会初始化_Grails_Groovy_H2 - Fatal编程技术网

GrailsH2数据库将不会初始化

GrailsH2数据库将不会初始化,grails,groovy,h2,Grails,Groovy,H2,在过去的几天里,我一直在尝试运行一个Grails项目的基本版本。在经历了处理Java版本不兼容和错误IDE的各种问题之后,我可以看到开始了!但最后一个问题让我很烦恼 我的Grails2.4.4项目使用H2,我正在开发模式下运行应用程序。我收到一堆错误消息,如下所示: 错误| 2015-09-27 00:22:16096[localhost-startStop-1]错误 hbm2ddl.SchemaExport-未找到表“订单交货”;SQL 语句:alter table order_交货下降约束

在过去的几天里,我一直在尝试运行一个Grails项目的基本版本。在经历了处理Java版本不兼容和错误IDE的各种问题之后,我可以看到开始了!但最后一个问题让我很烦恼

我的Grails2.4.4项目使用H2,我正在开发模式下运行应用程序。我收到一堆错误消息,如下所示:

错误| 2015-09-27 00:22:16096[localhost-startStop-1]错误 hbm2ddl.SchemaExport-未找到表“订单交货”;SQL 语句:alter table order_交货下降约束 FK_syi9a9vft4d15lq78cx3e1m38(如果存在)[42102-176]

我想这些错误可能与此有关: 我可以忽略它们。但是当我得到我的应用程序的dbconsole时,它没有显示任何表格。话虽如此,这似乎是本问题中描述的问题:

但我尝试了使用磁盘空间的公认解决方案,但这并没有解决问题。有什么想法吗?我正在使用SpringSecurity和带rest的SpringSecurity,尽管禁用它没有帮助

从my数据源.groovy

environments {
    development {
        dataSource {
            dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
            url = "jdbc:h2:C:/temp/app_data;MVCC=TRUE"
        }
    }
}
class BootStrap {

    def init = { servletContext ->
        User user = new User(username: "test", password: "test123", 
            email: "test@guy.com", name: "Dakota Roberts", title: "MD", active: true)
        user.save()

        SecRole roleUser = new SecRole(authority: "ROLE_USER")
        roleUser.save()

        new SecUserSecRole(user: user, role: roleUser).save()

        def users = User.findAll()
        for(User chkUser : users) {
            println chkUser.name
        }
    }
    def destroy = {
    }
}
我的引导类。SecUser和SecRole由s2快速启动脚本生成,我的用户域扩展为SecUser。User.findAll()命令返回一个空列表

environments {
    development {
        dataSource {
            dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
            url = "jdbc:h2:C:/temp/app_data;MVCC=TRUE"
        }
    }
}
class BootStrap {

    def init = { servletContext ->
        User user = new User(username: "test", password: "test123", 
            email: "test@guy.com", name: "Dakota Roberts", title: "MD", active: true)
        user.save()

        SecRole roleUser = new SecRole(authority: "ROLE_USER")
        roleUser.save()

        new SecUserSecRole(user: user, role: roleUser).save()

        def users = User.findAll()
        for(User chkUser : users) {
            println chkUser.name
        }
    }
    def destroy = {
    }
}
用户域类示例。它扩展了将tablePerHierarchy设置为false的SecUser:

@Resource(uri="/user")
class User extends SecUser {
    String email
    String name
    String title
    Boolean active
    static belongsTo = [organization : Organization]
    static constraints = {
        email email: true, unique: true, blank: false
        name blank: false
    }
}

正在创建数据库文件吗?如果没有,请尝试连接:jdbc:h2:file:C:/temp/app_data;MVCC=Truehy Emmanuel-正在创建它。我的临时目录中有三个文件它和内存中的H2 db一起工作吗?我不明白你的意思。。。正如您在datasource配置中看到的,我使用的是内存中的H2 db。如果没有任何表,则domain.save()将失败。尝试在BootStrap.groovy中执行save()操作,如下所示:
domain.save(flush:true,failOnError:true)