我有一个 Grails 项目,其中开发环境使用内存 H2 数据库:
dataSource {
dbCreate = "create"
url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
}
我可以运行应用程序(使用 run-app)并将一些东西放入数据库中(例如,使用脚手架控制器)。现在,如果我对源文件进行更改,Grails 会检测到更改,重新编译类,然后……清除数据库!
我尝试在 JDBC URL 中使用file
而不是mem
,但行为是相同的。我发现避免这种情况的唯一方法是设置dbCreate
为"update"
而不是"create"
,但这也不是我想要的,因为我在应用程序的 中加载了一个夹具BootStrap
,所以当应用程序重新启动时,我最终得到了我的夹具的多个副本。
所以问题是:如何防止 Grails 在重新编译类时重新创建数据库——或者,当它清除数据库时重新加载我的固件?