JFinal 有没可能 自定义字段后不重启?

okk 发布于 2014/03/24 16:04
阅读 264
收藏 0
如题,我想在自定义模板界面上加减字段,自动增删数据库列,但又不想重启服务器,有什么好办法。@JFinal
加载中
0
阿-凯
阿-凯

我觉得可以看下初始化数据库生成ActiveRecordPlugin tableMappings那儿的代码,你可能需要修改动态修改里面的值,并执行相应修改表结构sql

0
缪斯的情人
缪斯的情人

先说问题的本身,不停机更新数据库,你这种方式本身不是一种产品阶段采用的好方式,试想数据量大时,你这个操作会造成长时间的locked,效果还不如重启来得快呢。不过这也不算问题,现成的解决方案也有,比如percona toolkit,但是在没有验证和做足回滚的前提下仍要慎重用。

再说下针对问题的解决方案:Record是个map,在启动时将与数据库表的映射加载到内存中,如果你增加数据库字段,需要重新刷新下Record的对应关系,亦或者通过反射增加对应字段到Record map中。ROR有个db:migrate 数据库迁移工具,结合动态语言的特性,可以解决线上数据库修改问题,但对于静态语言ORM,没遇到合适的解决方案,或者是我不晓得(groovy脚本?)。




0
首席救火队员
首席救火队员

mark下,目前我采用的方式是在一个大字段里保存json数据,不用重启jfinal,但感觉效率不高。

返回顶部
顶部