【发布时间】:2010-10-13 12:12:42
【问题描述】:
我想向现有域类添加一个字段。我不想丢失我的视图文件,但是我知道如果我运行 generate-all 就会发生。还有其他方法可以更新映射等吗?
【问题讨论】:
标签: grails
我想向现有域类添加一个字段。我不想丢失我的视图文件,但是我知道如果我运行 generate-all 就会发生。还有其他方法可以更新映射等吗?
【问题讨论】:
标签: grails
我认为这是一个普遍的问题。
这不是您问题的直接解决方案,但这是我所做的并且对我来说非常有效。
我从不直接修改 grails 脚手架构件(视图和控制器)
我将生产视图/控制器与脚手架工件分开;通过我使用脚手架作为我的应用程序控制器和视图的起点。
如果域模型发生更改,我会重新生成视图并从脚手架工件复制粘贴(尽可能)到手工编码的工件。
有时,我要么从应用程序中删除所有搭建的工件,要么只保护对它们的访问。
希望这会有所帮助。
【讨论】:
有几种方法可以做到这一点。
如果您没有过多地修改生成的视图并且正在使用版本控制,您可以允许 grails 覆盖您的视图,然后将新模板的更改与版本控制中的内容合并。
如果您修改了生成的视图,您只需对覆盖视图的提示回答否即可。如果您只是添加新字段、更改字段名称或类似的简单操作,则手动修改视图模板应该非常简单。
您将以相同的方式处理对控制器的任何可能更改。
【讨论】:
只要声明它:
class MyDomain {
String newField;
}
应该是你需要做的所有事情。
【讨论】:
不要重新生成视图,只需将另一个类似的字段复制并粘贴到您要放入所需视图中的字段。
【讨论】: