首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grails 2.4.3:管理不断变化的模式

Grails 2.4.3:管理不断变化的模式
EN

Stack Overflow用户
提问于 2014-09-29 21:09:47
回答 2查看 248关注 0票数 1

我正在尝试开发一个系统,它访问由另一个系统管理和更新的模式,因此数据库模式可能会独立于我的系统进行更改。这不太可能是新表或删除列,更多的是添加新列。

是否有一种方法可以在向模式中添加列时自动更新我的域类,理想情况下是通过调用web服务,然后此web服务更新域类?即使只有一个CLI命令,也比手动修改代码要好。我知道您可以自动搭建(构建视图和控制器),但是有没有办法检查模式并查找新列,然后将新属性添加到域类中?

我看过各种插件和页面,包括db-reverse-engineer (与2.4.3不兼容),database-migration (似乎更多用于域类更改后更新数据库)和dynamic-domain-class (似乎创建了全新的域类,而不仅仅是更新属性)。

目前,我能想到的唯一方法就是自己运行一些自定义的sql来检查模式,提取列名、类型和约束,然后使用动态域类插件动态生成我自己的域类。但这看起来很混乱。

本质上,我想知道域类名称,但有一个域类属性不可知的系统,这样我就可以在运行时基于域类的属性(自动支架)动态构建gui。

提前感谢您的任何想法/建议。

EN

回答 2

Stack Overflow用户

发布于 2014-09-29 21:23:09

哥儿们,简直不敢想。在远程端放置一些可以监视您的更改的代码,确保您在某个稳定的时间点或某种时间将该记录存储或发送到grails应用程序。您可以使用like监视远程数据库,并从远程数据库生成更改日志的报告,然后可以尝试编写脚本

1.相应地更新域模型,例如,如果在Customers表中添加了lastname字段

2.然后,我能给出的好建议是,在使用某些排序脚本、数据库快照或某种类型的同步对域进行更改后,动态执行更改日志脚本,以便更好地使用AUTOSCAFFOLDING。

这只是个想法。。。

票数 0
EN

Stack Overflow用户

发布于 2014-09-29 22:13:29

关于逆向工程插件,你仍然可以用grails 2.4.3来运行它。问题在于对Hibernate 4的依赖,因为Hibernate API发生了变化。

如果你想继续使用这个插件,你可以通过注释下面这行回到Hibernate 3:

代码语言:javascript
复制
runtime ":hibernate4:4.X.X.X"

通过添加这个来代替:

代码语言:javascript
复制
runtime ":hibernate:3.6.10.17"

然后它就会完美地运行。我还在计划升级这个非常有用的插件。但这需要一段时间:/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26100749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档