首先写在最前面的,我只想说Erwin反向工程真是难用。或者是我没有搜到简单的方法吧。总之,希望下面介绍的可以减少点你的工作量。
前言:一般来说Logical model显示中文,Physical显示英文。你可以想成,Logical model是逻辑实体,也就是字段中文评论备注,Physical model就相当于数据库字段映射。
具体操作如下:
1、生成数据库表创建脚本。这个就不多说了,navicat会用的话很简单:
2、处理脚本:首先我试过,通过Erwin,用script反向工程生成model的话,如果导出来的创建脚本包含如下情况就会失败:
- 字段被`标记,如:`id`;
- 字段带Comment;
- 脚本带index;
- 脚本带类似这样的语句:CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
- 脚本带类似这样的语句:ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = 'demo表' ROW_FORMAT = Dynamic;
有带上面这些的,别问,把相关的删了就是了。字段被`标记的,把`改成双引号就行。别问我为什么知道这些不行,因为你逆向工程的时候会报错。
3、Erwin开启来,选择Tool->Reverse Engineer
然后选Physical。别选Logical/Physical。如下
然后在新弹窗中选Script,选之前处理好的sql脚本:
之后,next,不报错就会生成Physical的model了。
4、生成的model先别动,点击Erwin左上角create model按钮。新建一个Local/Physical的model
5、将原来创建的那个Physical的model的表复制,然后粘贴到新的这个Local/Physical的model里面。你就会发现,切换到Local的视图时,修改字段为中文,不会影响到Physical的因为字段显示了。
看到这里可能你会觉得怎么还是要自己写中文,没办法,要不然我怎么说这玩意难用呢?或者你有其他更好的办法麻烦告诉我。就这样了。
关注公众号获取更多内容,有问题也可在公众号提问哦:
强哥叨逼叨
叨逼叨编程、互联网的见解和新鲜事