文档章节

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

realpeter
 realpeter
发布于 2015/04/30 22:13
字数 584
阅读 61
收藏 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
浦东
项目经理
私信 提问
【PPT分享】PowerDesigner10.0与模型驱动开发.ppt

作者简介 我的名字是王晓昀 (WANG Xiao Yun) 我于1978年上北京大学.只上了三个月. 我于1979年去法国上学 1986年大学毕业后在巴黎的SDP软件公司工作 1988年开始开发PowerDesigner 1989年开发在...

红薯
2010/09/03
1K
9
PowerDesigner 15—— 企业架构建模的原动力

一、 引言 正 如建筑蓝图是建设一座高楼大厦的基石一样,企业架构对一个企业的生存和发展具有同样至关重要的作用。随着企业的发展,企业的信息系统与业务关联越来越紧 密,信息系统的复杂度和...

红薯
2009/02/03
5.7K
0
Powerdisigner使用

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

王子城
2018/08/31
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 16.5 安装配置

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

Gibbons
2018/07/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux Wireshark普通用户启动使用方案

当系统安装好Wireshark后请正常启动是否可以进行正常使用,如果不行请参考下列指导 向系统添加一个用户组 sudo groupadd wireshark //如提示此组存在可跳过 将指定用户添加到这个组中 sudo...

CHONGCHEN
今天
1
0
CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
2
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
4
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
4
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部