2014-02-26 47 views
0

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

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

+0

您正在使用哪个版本的PowerDesigner? – pascal

+0

我正在使用PowerDesigner 16.5 –

回答

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 
+0

您是否在PowerDesigner中执行此操作?可以在外面执行吗?或者我怎么能做一个计划的任务(批处理文件)调用? –

+0

我在'Tools> Execute Commands> Edit/Run Script'中执行它作为vbscript。但它可以位于扩展中(修改的DBMS定义/ .xdb或新的扩展模型定义/ .xem),并附加到菜单选项。 – pascal

+1

这只是一个演示,它可以反转数据库。然后,可以使用任何支持自动化的语言来编写相同的文件,例如wscript。 – pascal

0

你很可能已经想了很久以前,但也许我仍然可以帮助别人。 因此,我通过任务 - >生成脚本在Server Management Studio中从我的数据库创建了一个.sql脚本文件。接下来,在PowerDesigner 12.5中,我做了Reverse Engineer - > Database(选择了在模型中复制DBMS定义) - > OK(选择了脚本文件),等等 - >我的PhysicalDataModel包含一个PhysicalDiagram。 我无法理解他说的是什么语言,但这个家伙给了我一个好主意如何去做。 https://www.youtube.com/watch?v=A8I47kLdIXg 快乐编码:))