我有一些问题可以通过run-script命令填充我的H2数据 enzyme :
这是我的域类:
class Lab {
String name
static constraints = {
}
String toString() {
return name
}
static mapping = {
sort "name"
}
}
我生成了 Controller ,并使用grails generate-all命令进行了查看。
我编写了一个简单的常规脚本来添加新的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
时,看不到任何新创建的Lab。我正在使用默认的H2数据库设置。
我错过了什么吗?
最佳答案
您正在使用名为devDB的h2内存数据库(h2: mem :devDb;)。
我在这里看到两个选择。如果您希望有一个物理文件来表示您的数据库,则可以使用file代替mem。
h2:file:devDb;
或者,您可以将脚本放入Bootstrap.groovy站点,每次启动应用程序时,都会生成这些记录。
这条路:
Lab.findOrSaveWhere(name:'AAAAAAAAAA')
关于grails - Grails:使用运行脚本填充H2数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27441695/