• 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后,会弹出确认框,默认选择确定后即可看到效果:

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

    调整后效果:

     

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

  • 相关阅读:
    docker 知识汇总1-镜像管理
    合并两个git repository
    这一次, 信报箱震惊世界
    python实现括号分组
    linux case菜单代码示例
    oracle 11gR2 client安装(Red Hat Enterprise Linux Server release 5.5 (Tikanga) 安装ORACLE客户端)
    SYSAUX表空间过大处理
    SYSAUX表空间大于33G问题处理
    window 给链接加下划线或取消下划线
    ORACLE11G_win32监听程序不支持服务
  • 原文地址:https://www.cnblogs.com/jpfss/p/10935508.html
Copyright © 2020-2023  润新知