文档章节

PowerDesigner文件解析的python api工具类实现

realpeter
 realpeter
发布于 2015/04/30 22:13
字数 584
阅读 58
收藏 0

PDMHandler

Power Designer是常见的数据库建模工具。本程序是一个使用python编写的工具类,用于处理power designer的数据文件。目前特性还不多,初步具备处理power designer模型文件(.pdm)的基本能力。

源码简介

PDMHandler.py

PDMHandler工具类的实现源码。使用下面的命令可以看到API的帮助文档(中文编写):

$ echo "import PDMHandler; help(PDMHandler);"|python

example1.py

PDMHandler类的一个使用示例,可用于编码参考。

项目主页:https://github.com/petjiang/PDMHandler

源码地址:git@github.com:petjiang/PDMHandler.git


20150504:更新README.md 

(https://github.com/petjiang/PDMHandler/blob/master/README.md)

PDMHandler

Power Designer is usually used as a database modeling toolkit. This code implement a tool class to handle sybase PowerDesigner datafile(.pdm). Currently, it is able to handle power designer model file encode in .pdm files.

Source Code Intro.

PDMHandler.py

The class implementation of PDMHandler. use following command to see help docs (sorry that I type it in Chinese):

$ echo "import PDMHandler; help(PDMHandler);"|python

TEST PDM files

PowerDesigner model file (.pdm) is prepared in [repodir]/src/testpdm use these as input argument for testing the example1.py

  • NOTICE: (.pdm) files come from PowerDesigner15 directory [Sybase\PowerDesigner 15\Examples]

example1.py

  • It is a usecase of PDMHandler class, read it as a reference code.

  • example1.py shows 5 levels of pdm file -- Package/Table/Column/Index/IndexColumn

  • each level has their own attributes which are defined in PDMHandler class :

PKG_ATTR_LIST=["Name","Code","CreationDate","Creator","ModificationDate","Modifier"]
TBL_ATTR_LIST=["Name","Code","CreationDate","Creator","ModificationDate","Modifier", "PhysicalOptions"]
COL_ATTR_LIST=["Name","Code","CreationDate","Creator","ModificationDate","Modifier", "DataType","Length","Column.Mandatory","Comment"]
IDX_ATTR_LIST=["Name","Code","CreationDate","Creator","ModificationDate","Modifier", "PhysicalOptions","Unique"]
IDXCOL_ATTR_LIST=["CreationDate","Creator","ModificationDate","Modifier"]

By running :

$ python example1.py testpdm/Consol.pdm

shows the output to standout :

 P: Duplicated Database DUPLICATED_DATABASE lpommier
  T: Duplicated Account DUPLICATED_ACCOUNT vaudino
   T-PATH: /Model/o:RootObject/c:Children/o:Model/c:Tables/o:Table
   C: Email EMAIL char(256) 256 1
   C: Name NAME char(256) 256
   C: URL URL char(256) 256
   I: ACCOUNT_PK ACCOUNT_PK 1
    IC: EMAIL
  T: Duplicated Auteurs DUPLICATED_AUTEURS vaudino
   T-PATH: /Model/o:RootObject/c:Children/o:Model/c:Tables/o:Table
   C: Email EMAIL char(256) 256 1
   C: Title TITLE char(256) 256 1
   I: AUTEURS_PK AUTEURS_PK 1
    IC: EMAIL
    IC: TITLE
   I: Publication_FK PUBLICATION_FK
    IC: EMAIL
   I: Authors_FK AUTHORS_FK
    IC: TITLE
  T: Duplicated Publication DUPLICATED_PUBLICATION vaudino
   T-PATH: /Model/o:RootObject/c:Children/o:Model/c:Tables/o:Table
   C: Title TITLE char(256) 256 1
   C: Email EMAIL char(256) 256 1
   C: Pub_Title PUB_TITLE char(256) 256
   C: Summary SUMMARY long varchar
   C: Keywords KEYWORDS char(256) 256
   I: PUBLICATION_PK PUBLICATION_PK 1
    IC: TITLE
   I: PUBLISHER_FK PUBLISHER_FK
    IC: EMAIL
   I: REFERENCES_FK REFERENCES_FK
    IC: PUB_TITLE

Why I write it ?

Yes,it is just a tiny code for fun. But I hope more features will be added in it, and it will be useful to solve some headachy problem. Just like :

  • compare the online database instance with PDM file.

  • autogen SQL schema from PDM file (PowerDesigner's auto-gen setting sucks)

  • autogen ORM fro PDM file (seems awesome?!,support embed c,SQLAlchemy..)


© 著作权归作者所有

共有 人打赏支持
realpeter
粉丝 0
博文 1
码字总数 584
作品 0
浦东
项目经理
PowerDesigner 16.5 安装配置

PowerDesigner16.5破解版是一款业内领先且开发人员常用的数据库建模工具,PowerDesigner可以从物理和概念两个层面设计数据库,方便用户制作处清晰直观的数据流程图和结构模型,欢迎有需要的朋...

Gibbons
07/22
0
0
Powerdisigner使用

最近开发新项目正在设计数据库用到了PowerDesigner,在使用过程当中遇到了一些问题,在这里分享一下,以免大家在同样的问题上浪费时间。 刚开始下载了一个PowerDesigner16.5的安装包,安装好...

王子城
08/31
0
0
PowerDesigner使用心得

1.概述 PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。利用PowerDesigner可以制作数据流程图、概念数据模型、...

数通畅联
2014/12/23
0
0
powerDesigner jdbc 链接不上mysql 的解决方案

powerDesigner连接数据库时出现的错误,表示找不到JDBC的驱动文件。 Could not load class com.mysql.jdbc.Driver 解决方案: 1. 将 mysql.jar 驱动包 复制到 powerDesigner 的安装根目录下;...

haopeng
2014/11/05
0
0
PowerDesigner使用介绍

1.概述 2.创建物理模型 3.创建数据表 4.增加外键约束 5.生成SQL语句 6.生成设计文档 1.概述 PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包...

不正经啊不正经
2014/12/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSX | SafariBookmarksSyncAgent意外退出解决方法

1. 启动系统, 按住⌘-R不松手2. 在实用工具(Utilities)下打开终端,输入csrutil disable, 然后回车; 你就看到提示系统完整性保护(SIP: System Integrity Protection)已禁用3. 输入reboot回车...

云迹
今天
4
0
面向对象类之间的关系

面向对象类之间的关系:is-a、has-a、use-a is-a关系也叫继承或泛化,比如大雁和鸟类之间的关系就是继承。 has-a关系称为关联关系,例如企鹅在气候寒冷的地方生活,“企鹅”和“气候”就是关...

gackey
今天
4
0
读书(附电子书)|小狗钱钱之白色的拉布拉多

关注公众号,在公众号中回复“小狗钱钱”可免费获得电子书。 一、背景 之前写了一篇文章 《小狗钱钱》 理财小白应该读的一本书,那时候我才看那本书,现在看了一大半了,发现这本书确实不错,...

tiankonguse
今天
4
0
Permissions 0777 for ‘***’ are too open

异常显示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ......

李玉长
今天
5
0
区块链10年了,还未落地,它失败了吗?

导读 几乎每个人,甚至是对通证持怀疑态度的人,都对区块链的技术有积极的看法,因为它有可能改变世界。然而,区块链技术问世已经10年了,我们仍然没有真正的用上区块链技术。 几乎每个人,甚...

问题终结者
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部