通过run-script命令填充H2数据集时遇到了一些问题:
这是我的域类:
class Lab {
String name
static constraints = {
}
String toString() {
return name
}
static mapping = {
sort "name"
}
}
我使用grails generate-all命令生成了控制器和视图。
我写了一个简单的groovy脚本来添加新的Lab:
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数据库设置。
我错过了什么吗?
答案 0 :(得分:0)
您正在使用名为devDB的h2内存数据库(h2: mem :devDb;)。
我在这里看到两个选项。如果您希望有一个物理文件来表示您的数据库,您可以使用文件而不是mem。
h2:file:devDb;
或者您可以将脚本放入Bootstrap.groovy,每次启动应用程序时都会生成这些记录。
这样:
Lab.findOrSaveWhere(name:'AAAAAAAAAA')