PowerDesigner反向生成数据库模型(MySql篇)

目录:

  • 数据库的反向生成模型
  • 模型的Cooment注释显示

步骤一:下载odbc驱动并进行安装:

(1)下载

mysql-connector-odbc-5.3.4-win32

注意:不管电脑是32位,还是64位,统一安装32位即可。

(2)安装

步骤二:odbcad32.exe添加数据源

找到C:WindowsSysWOW64目录下找到odbcad32.exe这个文件

双击打开,弹出ODBC数据源管理界面

点击添加按钮,在弹出的窗口中选中,安装好的驱动:

点击完成,弹出数据库信息创建窗体:

点击后Ok后,即可以看到新增加了选项:

配置完成。

步骤三:数据库导出为Sql脚本文件

 

步骤四:打开PowerDesigner软件,进行导入生成模型

A、选择菜单,导入数据源

B.选择数据库版本

C.点击添加Sql文件

D.点击确定后,即可进行转换,生成想要的数据库模型

步骤五,设置显示备注信息:

A、双击表,进入编辑模式,注意:表和列记得添加注释,如下图所示:

点击下图按钮:

B、勾选Comment的多选框

C、打开执行脚本编辑窗口

D、执行以下VBS脚本:

复制代码
    Option   Explicit   
    ValidationMode   =   True   
    InteractiveMode   =   im_Batch
    Dim blankStr
    blankStr   =   Space(1)
    Dim   mdl   '   the   current   model  
<span style="color: #008000;">'</span><span style="color: #008000;">   get   the   current   active   model   </span>
<span style="color: #0000ff;">Set</span>   mdl   =<span style="color: #000000;">   ActiveModel   
</span><span style="color: #0000ff;">If</span>   (mdl   <span style="color: #0000ff;">Is</span>   <span style="color: #0000ff;">Nothing</span>)   <span style="color: #0000ff;">Then</span>   
      <span style="color: #0000ff;">MsgBox</span>   <span style="color: #800000;">"</span><span style="color: #800000;">There   is   no   current   Model </span><span style="color: #800000;">"</span>   
<span style="color: #0000ff;">ElseIf</span>   <span style="color: #0000ff;">Not</span>   mdl.IsKindOf(PdPDM.cls_Model)   <span style="color: #0000ff;">Then</span>   
      <span style="color: #0000ff;">MsgBox</span>   <span style="color: #800000;">"</span><span style="color: #800000;">The   current   model   is   not   an   Physical   Data   model. </span><span style="color: #800000;">"</span>   
<span style="color: #0000ff;">Else</span><span style="color: #000000;">   
      ProcessFolder   mdl   
</span><span style="color: #0000ff;">End</span>   <span style="color: #0000ff;">If</span>  
  
<span style="color: #0000ff;">Private</span>   <span style="color: #0000ff;">sub</span><span style="color: #000000;">   ProcessFolder(folder)   
</span><span style="color: #0000ff;">On</span> <span style="color: #0000ff;">Error</span> <span style="color: #0000ff;">Resume</span> <span style="color: #0000ff;">Next</span>  
      <span style="color: #0000ff;">Dim</span>   <span style="color: #0000ff;">Tab</span>   <span style="color: #008000;">'</span><span style="color: #008000;">running     table   </span>
      <span style="color: #0000ff;">for</span>   <span style="color: #0000ff;">each</span>   <span style="color: #0000ff;">Tab</span>   <span style="color: #0000ff;">in</span><span style="color: #000000;">   folder.tables   
            </span><span style="color: #0000ff;">if</span>   <span style="color: #0000ff;">not</span>   <span style="color: #0000ff;">tab</span>.isShortcut   <span style="color: #0000ff;">then</span>   
                  <span style="color: #0000ff;">tab</span>.name   =   <span style="color: #0000ff;">tab</span><span style="color: #000000;">.comment  
                  </span><span style="color: #0000ff;">Dim</span>   col   <span style="color: #008000;">'</span><span style="color: #008000;">   running   column   </span>
                  <span style="color: #0000ff;">for</span>   <span style="color: #0000ff;">each</span>   col   <span style="color: #0000ff;">in</span>   <span style="color: #0000ff;">tab</span><span style="color: #000000;">.columns   
                  </span><span style="color: #0000ff;">if</span> col.comment = <span style="color: #800000;">""</span> <span style="color: #0000ff;">or</span> <span style="color: #0000ff;">replace</span>(col.comment,<span style="color: #800000;">"</span> <span style="color: #800000;">"</span>, <span style="color: #800000;">""</span>)=<span style="color: #800000;">""</span> <span style="color: #0000ff;">Then</span><span style="color: #000000;">
                        col.name </span>=<span style="color: #000000;"> blankStr
                        blankStr </span>= blankStr &amp; <span style="color: #0000ff;">Space</span>(<span style="color: #800080;">1</span><span style="color: #000000;">)
                  </span><span style="color: #0000ff;">else</span><span style="color: #000000;">  
                        col.name </span>=<span style="color: #000000;"> col.comment   
                  </span><span style="color: #0000ff;">end</span> <span style="color: #0000ff;">if</span>  
                  <span style="color: #0000ff;">next</span>   
            <span style="color: #0000ff;">end</span>   <span style="color: #0000ff;">if</span>   
      <span style="color: #0000ff;">next</span>  
  
      <span style="color: #0000ff;">Dim</span>   view   <span style="color: #008000;">'</span><span style="color: #008000;">running   view   </span>
      <span style="color: #0000ff;">for</span>   <span style="color: #0000ff;">each</span>   view   <span style="color: #0000ff;">in</span><span style="color: #000000;">   folder.Views   
            </span><span style="color: #0000ff;">if</span>   <span style="color: #0000ff;">not</span>   view.isShortcut   <span style="color: #0000ff;">then</span><span style="color: #000000;">   
                  view.name   </span>=<span style="color: #000000;">   view.comment   
            </span><span style="color: #0000ff;">end</span>   <span style="color: #0000ff;">if</span>   
      <span style="color: #0000ff;">next</span>  
  
      <span style="color: #008000;">'</span><span style="color: #008000;">   go   into   the   sub-packages   </span>
      <span style="color: #0000ff;">Dim</span>   f   <span style="color: #008000;">'</span><span style="color: #008000;">   running   folder   </span>
      <span style="color: #0000ff;">For</span>   <span style="color: #0000ff;">Each</span>   f   <span style="color: #0000ff;">In</span><span style="color: #000000;">   folder.Packages   
            </span><span style="color: #0000ff;">if</span>   <span style="color: #0000ff;">not</span>   f.IsShortcut   <span style="color: #0000ff;">then</span><span style="color: #000000;">   
                  ProcessFolder   f   
            </span><span style="color: #0000ff;">end</span>   <span style="color: #0000ff;">if</span>   
      <span style="color: #0000ff;">Next</span>   
<span style="color: #0000ff;">end</span>   <span style="color: #0000ff;">sub</span>  &nbsp;</pre>
复制代码

 

 E、执行后,即可发现注释已经正常现示:

步骤六:显示原字段名

点击Ok后,会弹出确认框,默认选择确定后即可看到效果:

步骤七:更改显示的顺序:

调整后效果:

 

数据库反向生成模型结束!

原文地址:https://www.cnblogs.com/jpfss/p/10935508.html