Grails 不断删除我的表

Posted

技术标签:

【中文标题】Grails 不断删除我的表【英文标题】:Grails keep deleting my tables 【发布时间】:2011-07-01 13:34:26 【问题描述】:

我的表结构如下:

创建表 test_two_tabel.T1 ( T1_ID INT NOT NULL AUTO_INCREMENT , A1 INT NULL , B1 VARCHAR(45) NULL , C1 VARCHAR(45) NULL , @987654327 , 主键 (T1_ID) );

在 Grails 中:

package twotables

class T1 

    Integer a
    String b
    String c
    Date d

    static mapping = 
        table "T1"
        version false
        id column:"T1_ID"
        a1 column:"a1"
        b1 column:"b1"
        c1 column:"c1"
        d1 column:"d1"
    

    static constraints = 
        id()
        a1()
        b1()
        c1()
        d1()
    

每次我执行我的程序... Grails 都会删除我在数据库中的表,有人知道发生了什么吗?

【问题讨论】:

【参考方案1】:

您需要在grails-app/conf/DataSource.groovy将 dbCreate 的值从“create-drop”更改为“update”

你当前的值大概是:

development 
    dataSource 
        dbCreate = "create-drop" // one of 'create', 'create-drop','update'
        url = "***"
    

这意味着 Grails 将在每次重启时重新创建所有表。如果您将其设置为update,它将尝试根据您的数据模型类更新表结构。

您可以在http://www.grails.org/doc/latest/guide/3.%20Configuration.html#3.3%20The%20DataSource 阅读有关 Grails DB 配置的更多信息

【讨论】:

谢谢...我认为这是问题... =)【参考方案2】:

这可能是一些事情。正如@splix 提到的,它可能是“create-drop”设置。

此外,如果您从未更改过数据源,Grails 会使用内存数据库,因此它只会在程序运行期间持续存在。您可以告诉 hsqldb 持久保存到文件而不是内存中。您也可以将其更改为指向 mysql 之类的内容。看here。

【讨论】:

以上是关于Grails 不断删除我的表的主要内容,如果未能解决你的问题,请参考以下文章

Grails 可搜索插件

grails 有限的表创建

Grails 脚手架继承

Grails 更新而不是删除

如何从 Grails 中正确删除 H2

Grails 单元测试问题