【问题标题】:Grails database gets cleared at each recompile每次重新编译时都会清除 Grails 数据库
【发布时间】:2013-01-11 20:18:09
【问题描述】:

我有一个 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 在重新编译类时重新创建数据库 - 或者,在清除数据库时重新加载我的固件?

【问题讨论】:

    标签: grails grails-orm h2


    【解决方案1】:

    有一个类似的“问题”here

    每当您对域类进行更改时,Grails 都会重置数据库。

    通常您的域类不应该经常更改,所以这不是一个大问题。只需按照 MVC 模式将逻辑放入控制器和服务中即可。 然后尝试一次性完成所有待处理的域类更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      • 2021-10-14
      • 2019-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      相关资源
      最近更新 更多