使用PowerDesinger將mysql中的數據庫逆向生成爲PDM文件 轉載 2017年02月04日 12:44:11 1574 Part 1 PowerDesigner連接mysql逆向生成pd

使用PowerDesinger將mysql(oracle、sqlServer)中的數據庫逆向生成爲PDM文件

Part 1 

PowerDesigner連接mysql逆向生成pdm

轉自:http://www.cnblogs.com/dennyzhangdd/p/5550868.html

常用的建模工具有:PowerDesigner和ERWin,後者已快被淘汰,但前者依然活躍。相信大家都遇到過項目組已經運營很很久,但是竟然連一個ER圖都沒有,今天就講解一下PowerDesigner連接mysql逆向生成pdm。PS:網絡上各種老版本,各種文不對題,按照本文去做,10分鐘即可搞定,就是這麼簡單。

假設大家已經安裝好PowerDesigner,本人使用版本號15.1破解漢化版。

1.安裝mysql-connector-odbc-5.1.5-win32.msi這個是驅動必須安裝,大概4M,百度搜即可。


2.打開powerdesigner,文件-》reverse engineer--》database   model name 自定義--》

選擇dbms爲mysql 5.0 --》using a據源點擊圖中


紅圈,                       點擊configure ,

                  點擊紅圈,添加新數據源。

                  ,下一步選擇第一步安裝的驅動,

                     下一步,確定。

 

                  

,填寫相關數據,上面兩行隨便寫,下面4行就是連接數據庫的必須字段。點擊OK,跳轉到

               

下拉框選定剛配置好的數據源,點擊connect,

                   

,點擊確定篩選要導出的表(<All users>下拉篩選)--》OK 即可生成PDM。
注意:如果pdm需要註釋(comment),那麼mysql中要事先填寫好才行。


Part 2

PowerDesigner 把Comment寫到name中 和把name寫到Comment中 pd7以後版本可用

轉自:http://www.cnblogs.com/cxd4321/archive/2009/03/07/1405475.html

在使用PowerDesigner對數據庫進行概念模型和物理模型設計時,一般在NAME或Comment中寫中文,在Code中寫英文。Name用來顯 示,Code在代碼中使用,但Comment中的文字會保存到數據庫Table或Column的Comment中,當Name已經存在的時候,再寫一次 Comment很麻煩,可以使用以下代碼來解決這個問題:

  • 代碼一:將Name中的字符COPY至Comment中

    Option   Explicit 
    ValidationMode   =   True 
    InteractiveMode   =   im_Batch

    Dim   mdl   '   the   current   model

    '   get   the   current   active   model 
    Set   mdl   =   ActiveModel 
    If   (mdl   Is   Nothing)   Then 
          MsgBox   "There   is   no   current   Model " 
    ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then 
          MsgBox   "The   current   model   is   not   an   Physical   Data   model. " 
    Else 
          ProcessFolder   mdl 
    End   If

    '   This   routine   copy   name   into   comment   for   each   table,   each   column   and   each   view 
    '   of   the   current   folder 
    Private   sub   ProcessFolder(folder) 
          Dim   Tab   'running     table 
          for   each   Tab   in   folder.tables 
                if   not   tab.isShortcut   then 
                      tab.comment   =   tab.name 
                      Dim   col   '   running   column 
                      for   each   col   in   tab.columns 
                            col.comment=   col.name 
                      next 
                end   if 
          next

          Dim   view   'running   view 
          for   each   view   in   folder.Views 
                if   not   view.isShortcut   then 
                      view.comment   =   view.name 
                end   if 
          next

          '   go   into   the   sub-packages 
          Dim   f   '   running   folder 
          For   Each   f   In   folder.Packages 
                if   not   f.IsShortcut   then 
                      ProcessFolder   f 
                end   if 
          Next 
    end   sub

--------------------------------------------

         另外在使用REVERSE ENGINEER從數據庫反向生成PDM的時候,PDM中的表的NAME和CODE事實上都是CODE,爲了把NAME替換爲數據庫中Table或Column的中文Comment,可以使用以下腳本:

  • 代碼二:將Comment中的字符COPY至Name中


    Option   Explicit 
    ValidationMode   =   True 
    InteractiveMode   =   im_Batch

    Dim   mdl   '   the   current   model

    '   get   the   current   active   model 
    Set   mdl   =   ActiveModel 
    If   (mdl   Is   Nothing)   Then 
          MsgBox   "There   is   no   current   Model " 
    ElseIf   Not   mdl.IsKindOf(PdPDM.cls_Model)   Then 
          MsgBox   "The   current   model   is   not   an   Physical   Data   model. " 
    Else 
          ProcessFolder   mdl 
    End   If

    Private   sub   ProcessFolder(folder) 
    On Error Resume Next
          Dim   Tab   'running     table 
          for   each   Tab   in   folder.tables 
                if   not   tab.isShortcut   then 
                      tab.name   =   tab.comment
                      Dim   col   '   running   column 
                      for   each   col   in   tab.columns 
                      if col.comment="" then
                      else
                            col.name=   col.comment 
                      end if
                      next 
                end   if 
          next

          Dim   view   'running   view 
          for   each   view   in   folder.Views 
                if   not   view.isShortcut   then 
                      view.name   =   view.comment 
                end   if 
          next

          '   go   into   the   sub-packages 
          Dim   f   '   running   folder 
          For   Each   f   In   folder.Packages 
                if   not   f.IsShortcut   then 
                      ProcessFolder   f 
                end   if 
          Next 
    end   sub

-----------------------------------------------------------------------

以上兩段代碼都是VB腳本,在PowerDesigner中使用方法爲:

    PowerDesigner->Tools->Execute Commands->Edit/Run Scripts

將代碼Copy進去執行就可以了,是對整個CDM或PDM進行操作



Part 3

個人備註

直接使用 Part2 中的代碼二:將Comment中的字符COPY至Name中 時,表名也會變成中文名,如果要保持表名爲英文名則需要

刪去 tab.name   =   tab.comment 以及 view.name   =   view.comment 這兩行代碼。

發佈了28 篇原創文章 · 獲贊 92 · 訪問量 58萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章