利用PowerDesigner比较2个数据库
最近发现客户的正式数据库和给我们的开发数据库不一致,有的表结构变化了,导致我们一些程序要重新开发.现在客户重新提供一个新数据库,但是没有提供数据库比如表字段变化的文档,只能自己动手了.手工来对比数据库表结构的差异,不但效率低下,而且很可能看不不仔细而出错.PowerDesigner中可以对2个数据模型进行比较,所以想到用这个功能来实现对比数据库的目的.到底怎样利用PowerDesigner来比较新旧数据库,查看数据库中哪些对象变化了呢,下面慢慢道来.
首先简单介绍下PowerDesigner,它是Sybase公司的CASE工具集,它的功能几乎包括了数据库模型设计的全过程.可以制作数据流程图,概念数据模型,物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制.这些强大的功能我都不熟悉,前几天才开始接触PowerDesigner,就是对已经有的数据模型文件,用它打开来查看.这次用到物理模型导入功能,和模型对比功能.
主要实现思路
实现对比的主要思路为:设置好两个数据库的ODBC,打开PowerDesigner,从ODBC分别从数据库中导出两个新旧数据库物理数据模型到PowerDesigner中,选择需要比较的对象,如各个表,视图等,再比较生成的物理数据模型,得出差异比较结果,成功结束.
建立新旧数据库ODBC
ODBC的建立很简单,打开管理工具 -> 数据源(ODBC) 添加即可,但是要注意的是,一定要选择"更改默认的数据库为:"选项,并选择需要比较的数据库,如图.
导入原始数据模型
先新建一个物理数据模型文件,如图:
默认设置:
选择连接的新数据库的ODBC源:
输入用户名和密码:
执行导入实际数据模型操作:
选择新数据库对应的ODBC:
同样地,对旧数据库也执行上述操作,得到2个物理数据模型文件.
选择并比较对象
选择需要对比的表,或者其他对象,可以全选和全不选.
新数据库:
旧数据库:
在Tool菜单中选择Compare:
这时就能得到结果了,还能对结果进行过滤,比如只查看有变化的:
变化的详细结果,这里为表JSDRK下的kcxs字段的DataType由char(6)改为varchar(16)了:
可惜结果只能查看,不能导出成文件.
总结
数据模型的对比,只是PowerDesigner的一个很小功能,但是却能解决我的现有问题,并提高工作效率.另外PowerDesigner也确实是个很好的数据建模工具,一些同事用起来挺得心应手的,以后我有空也应该要好好学学了.