逆向工程数据库自动使用SAP PowerDesigner

时间:2014-02-26 18:51:30

标签: sybase sap powerdesigner

是否可以通过对sybase 15.7服务器进行逆向工程来自动创建(运行脚本)(.pdm)的物理数据库模型?

我知道我可以手动完成,但可以通过脚本来完成吗?

2 个答案:

答案 0 :(得分:2)

我正在使用这样的东西来反转数据库。

   dim path
   path = EvaluateNamedPath("%WORKDIR%\cnctjdbcasa.dcp")
   ReverseModel path, "dbuser", "dbpassword", "Sybase SQL Anywhere 12"

Function ReverseModel(cnxDSN, cnxUSR, cnxPWD, sDBMS)
   Dim mdl
   Set mdl = CreateModel(PdPDM.cls_Model, "|DBMS=" & sDBMS)
   set ReverseModel = mdl
   If mdl is Nothing Then
      MsgBox "Error: Unable to create a physical model for " & sDBMS, 0, "ReverseTest"
      Exit Function
   End If

   ' connect to the database with connection parameters
   If Not(mdl.ConnectToDatabase(cnxDSN, cnxUSR, cnxPWD)) Then
      MsgBox "Error: Unable to connect to " & cnxDSN & " - " & cnxUSR, 0, "ReverseTest"
      set ReverseModel = nothing
      mdl.Close false
      exit Function
   End If

   ' reverse tables from ODBC
   Dim opt
   Set opt = mdl.GetPackageOptions()
   opt.ReversedScript = False
   opt.ReverseAllTables = true
   opt.ReverseAllViews = false
   opt.ReverseAllStorage = false
   opt.ReverseAllTablespace = false
   opt.ReverseAllDomain = false
   opt.ReverseAllUser = false
   opt.ReverseAllProcedures = false
   opt.ReverseAllTriggers = false
   opt.ReverseAllSystemTables = false
   opt.ReverseAllSynonyms = false
   ' not interested in table details
   opt.ReversePrimaryKey = false
   opt.ReverseForeignKey = false
   opt.ReverseAlternateKey = false
   opt.ReverseIndex = false
   opt.ReverseCheck = false
   opt.ReversePhysicalOptions = false
   opt.ReverseStatistics = false
   opt.ReverseTablPermissions = false

   mdl.ReverseDatabase
End Function

答案 1 :(得分:0)

很久以前你可能已经想过了,但也许我仍然可以帮助别人。 因此,我通过Tasks-> Generate Scripts从Server Management Studio中的数据库创建了一个.sql脚本文件。 接下来,在PowerDesigner 12.5中,我做了逆向工程师 - >数据库(选择在模型中复制DBMS定义) - >确定(选择脚本文件),et voila - >我的PhysicalDataModel包含一个PhysicalDiagram。 我无法理解他说的是什么语言,但是这个人给了我一个好主意怎么做。 https://www.youtube.com/watch?v=A8I47kLdIXg 快乐的编码:))