【问题标题】:Reverse Engineer Database Automatically Using SAP PowerDesigner使用 SAP PowerDesigner 自动逆向工程数据库
【发布时间】:2014-03-29 19:40:29
【问题描述】:

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

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

【问题讨论】:

  • 您使用的是哪个版本的 PowerDesigner?
  • 我使用的是 PowerDesigner 16.5

标签: sybase sap powerdesigner


【解决方案1】:

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

【讨论】:

    【解决方案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
    

    【讨论】:

    • 您是否在 PowerDesigner 中执行此操作?可以在外面执行吗?或者我怎样才能让计划任务(批处理文件)调用它?
    • 我在Tools>Execute Commands>Edit/Run Script 中将其作为vbscript 执行。但它可以位于扩展名(修改后的 DBMS 定义/.xdb,或新的扩展模型定义/.xem)中,并附加到菜单选项。
    • 这只是一个证明可以反转数据库的演示。然后可以用任何支持自动化的语言编写相同的内容,例如 wscript。
    • 感谢您的帮助帕斯卡。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 2011-07-24
    • 2017-05-05
    • 2023-03-24
    相关资源
    最近更新 更多