Grails:使用运行脚本填充 H2 数据库



我在通过运行脚本命令填充我的 H2 datatase 时遇到了一些问题:

这是我的域类:

class Lab {
String name
static constraints = {
}
String toString() {
    return name
}
static mapping = {
    sort "name"
}

}

我使用 grails 生成全部命令生成了控制器和视图。

我写了一个简单的时髦脚本来添加新的实验室:

import groovy.sql.Sql
def grailsApplication
def dataSource = ctx.getBean("dataSource")
def sql = new Sql(dataSource)
Lab a = new Lab(name: "AAAAAAAAAAAAAA")
assert a.save(flush: true)
if (!a.hasErrors()) {
  println "${a.name} saved successfully!"
}

现在,当我运行它时,一切看起来都正常:

AAAAAAAAAAAAAA saved successfully!
| Script scripts/createLab.groovy complete!

但是当我http://localhost:8080/myapp/lab/index刷新网页页面时,我看不到任何新的实验室。

我正在使用默认的 H2 数据库设置。

我错过了什么吗?

您正在使用一个名为devDB (h2:mem:d evDb;)的h2内存数据库。

我在这里看到两个选项。如果你想用一个物理文件来代表你的数据库,你可以用文件代替mem。

h2:file:devDb;

或者你可以把你的脚本放在 site Bootstrap.groovy 中,每次你启动你的应用程序时,都会生成这些记录。

这边:

Lab.findOrSaveWhere(name:'AAAAAAAAAA')

最新更新