我想在现有的域类中添加一个字段。我不想丢失我的视图文件,但据我所知,如果我运行generate-all将会发生。还有其他方法可以更新映射等吗?
答案 0 :(得分:4)
我认为这是一个共同关注的问题。
这不是你问题的直接解决方案,但这是我的工作,对我来说非常好。
我从不直接修改grails scaffolded artifacts(视图和控制器)
我将生产视图/控制器与脚手架工件分开;通过我使用scaffolded作为我的应用程序控制器和视图的起点。
如果对域模型进行了更改,我会重新生成视图并从脚手架工件复制粘贴(尽可能)到手工编码的工件。
在某些时候,我要么从应用程序中删除所有脚手架工件,要么保护对它们的访问权限。
希望这会有所帮助。
答案 1 :(得分:1)
有几种方法可以做到这一点。
如果您没有过多地修改生成的视图并使用版本控制,则可以允许grails覆盖您的视图,然后将更改合并到版本控制中的新模板中。
如果您修改了生成的视图,则可以对覆盖视图的提示回答“否”。如果您只是添加一个新字段,更改字段名称或类似的简单字体,修改视图模板应该非常直接手动完成。
您将以相同的方式处理对控制器的任何可能更改。
答案 2 :(得分:0)
宣布:
class MyDomain {
String newField;
}
应该只需要做。
答案 3 :(得分:0)
不要重新生成视图,只需将其他类似字段复制并粘贴到您想要的视图中。