在域中删除/添加字段后更新视图+控制器+数据库

时间:2014-04-04 06:45:52

标签: grails

我正在开发grails项目,我创建了一个域并使用命令生成viewscontroller。生成它之后,它可以正常工作但之后我想从domain中删除一个字段。

删除之前

package com.liftoff

class Person {

    String studentID
    String firstName
    String middleName
    String lastName
    String year
    boolean isMarried

    static constraints = {
        studentID ()
        firstName ()
        middleName ()
        lastName ()
        year ()
        isMarried ()
    }
}

domain删除了一个字段后,我需要自动更新所有viewcontroller以及database

package com.liftoff

class Person {

    String studentID
    String firstName
    String middleName
    String lastName
    String year

    static constraints = {
        studentID ()
        firstName ()
        middleName ()
        lastName ()
        year ()
    }
}

以任何方式在Grails中执行此操作?

2 个答案:

答案 0 :(得分:0)

如评论中所述,一旦您生成了视图/控制器和其他工件,您必须手动维护对Domain类所做的任何更改。

但是,如果您正在进行原型设计并且尚未定制工件,那么您可能会从dynamic scaffolding中受益。不要生成控制器和视图,而是创建控制器,然后将其标记为scaffolded。例如:

class BookController {
    static scaffold = true
}

另外,在dbCreate设置DataSource.groovy以更新'将使您的数据库中的架构与您对Domain类的更改保持同步。

答案 1 :(得分:0)

作为answer given的更新, Grails v3.0 + 不再支持这种定义动态脚手架的方式。相反,如Grails documentary中所述,将域类分配给scaffold属性(而不是分配psClear)。

例如:

true