GrailsH2数据库将不会初始化
在过去的几天里,我一直在尝试运行一个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: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_交货下降约束
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)
。