PowerDesigner Repository进行版本管理

·  阅读 2283

背景说明

利用PowerDesigner(下文简称PD)进行数据库设计时,需要对输出的数据模型文件进行版本控制。常用的办法包括:

  • 将pdm文件上传到svn中进行版本控制。这种方式简单粗暴,但是对二进制的pdm文件仅能起到集中备份的作用,无法基于文件内容进行更精细的版本管理。
  • 使用PD导出建库SQL脚本,然后上传到svn中进行版本控制。这种方式可以对文本内容进行版本控制,但是因为PD设置不同导出的脚本格式在细节上有很大差异,严重影响对比的效率。
  • 使用PD自带的版本控制功能,官方名称叫做资料库(Repository) 。

本文就介绍如何使用PD资料库来规范化数据库模型的版本管理流程。

使用资料库的优点是

  1. 采用和SVN类似的操作,通过可视化方式进行版本对比、迁入迁出。
  2. 使用数据库直接保存建模文档的内容,并且在PD中直接查看和编辑,避免线下传递pdm文件造成版本混乱。
  3. 集成了灵活的用户和权限机制,可以在大型团队内部对不同用户分别设置只读、读写等权限。权限可以在全局设置,也可以对独立的建模文件设置。

在使用资料库的过程中,我们会使用到两个密码,为了方便描述,这里统一解释。

  • 红色密码:后台MySQL数据库的访问账户和密码,可以直接登录数据库执行SQL语句。在首次连接PD资料库的时候使用。
  • 蓝色密码:PowerDesigner资料库的访问账户和密码。日常访问PD资料库使用。

准备工作(由管理员操作)

建立数据库

本文选用MySQL数据库作为存储建模资料库的载体,所以需要先建立一个独立的DB和用户。 注意 这里建立的数据库用户pd_repo及密码(红色密码),后面会多次使用。

create database if not exists pd_repo default charset utf8;
grant all privileges on pd_repo.* to 'pd_repo'@'%' identified by '888888'; 
flush privileges;
复制代码

安装ODBC驱动

注意:PD和ODBC的版本要一致,本文使用的是64位PD和64位ODBC。

驱动文件下载地址 因为需要在PD中使用ODBC连接数据库,所以提前安装对应的驱动程序。本文使用的是odbc-5.3.8-winx64这个版本。

84004d4911102f04cbfbffe5a0343621

安装PowerDesigner

本文使用的是16.5这个版本的PD,并且在安装过程中一定要选择Repository这个组件,如下图

497feee050fede23a8790d6cc4e7a8ae

初始化资料库(由管理员操作)

建立资源库

点击 Repository -> Repository Definitions 菜单,如下图

849c83e1acc58154abfcfe373b66cb7e

在弹出的菜单里新建一个Repository,我们取名为PD_Repo,然后点击Data Source Name栏,如下图

000100bd2bae8303613c921b4cbc0990

在弹出的Select a Data Source中点击Configuration按钮,如下图

b1f4862c9c89a24f629b6806130f7b94

在弹出Configure Data Connections中点击Add Data Source,如下图

d68be93a1b3a0d24d0372411645ed5d2

在弹出的创建新数据源中选择 文件数据源,并进行数据源的设置,如下图

f8b29947159cbab9f99894b0b17b3a89

a14de2a1afe8b7657a663d68970aaff5

1489cb2aefc621cd9bb52a4594a5d01e

ba353f3241276d09c0f11d87826f3e61

6bb14cef7a8f58b910588e2daff58be8

首次连接资料库

按照上面的步骤建立好数据源连接后,点击Repository -> Connect,如下图

f6b3eb95fc4612d3281de1318875fc97

使用默认的ADMIN用户连接,初次连接资源库的时候使用空密码(蓝色密码),如下图

4def98ffbf1e01724661cd9f415a451c

但是在第一次连接数据库的时候,需要输入数据库连接密码,即我们建立MySQL数据库访问用户pd_repo的密码(红色密码),如下图

faa8cfe91d22bed35c521d2059e5846e

由于是第一次使用PowerDesigner连接,所以需要进行初始化并且创建一些需要的表,如下图

注意 初始化的过程很慢(10多分钟),如果PD持续进入无响应状态,可以把初始化SQL语句拷贝到数据库直接运行。

4b4ba42def0317f18cbdd3fb4855b7a4
8c472180f995a8005947c14db475c3f4

完成初始化之后,马上需要设置资料库ADMIN账号的密码(蓝色密码),默认的密码规则非常严格,如下图

545aa09c1b541628aa4fffad7cf26335

可选 默认密码规则非常严格,可以按自己的需要进行调整,如下图

8e684e398e117e16d9530ffaada1c3c1

用户和用户组

PD默认的权限规则:所有账户都是只读。为了更加精细化的管理,建议通过Group和User的组合来实现需求。

建立多个用户,并设置不同的用户组,如下

  • m1,m2
  • d1

e6518f832f68caf66ed22f92054d8757
0edf202abc0f5f71393fb3036dad14d1

在相对粗放的权限机制下,我们设定建模师可以修改模型,而开发者只能读取。这里我们建立两个用户组,并分配人员,如下

  • modeler : 架构师/建模师
  • developer : 普通开发者

e8028b3550c24d82d06a597248c95b71
26bc033e25f7b56f91c24b1df460b755

目录和权限

为了方便管理,我们假设所有的模型文件都会放在对应的项目文件夹中。所以我们建立文件夹,并设置不同用户组的访问权限,如下图

e8840ee46170105d3dd2cec3bb284d05
e2dc1d2f4de786eca066a7ec824e66e5

使用DSN文件(团队成员操作)

安装ODBC驱动

同上

安装PowerDesigner

同上

配置资料库连接

点击 Repository -> Repository Definitions 菜单,如下图

849c83e1acc58154abfcfe373b66cb7e

为了简化团队成员配置ODBC的步骤,管理员可以把已经配置好的dsn文件发放出来,成员直接使用即可。在创建资源库连接过程中,直接使用已经配置好的dsn文件即可,如下图

6d06907af04e9a465549bc1cb78decbd

首次连接资料库

按照上面的步骤建立好数据源连接后,点击Repository -> Connect,如下图

f6b3eb95fc4612d3281de1318875fc97

不论是首次连接还是后续连接,都需要输入资料库账号和密码(蓝色密码),如下图

729e2af5e64102e5c9fcc1c7c47d8451

如果是首次连接,还需要输入dsn里面设置的数据库账号和密码(红色密码),如下图

75f163b6ea14e299a425e82b10d77ee9

版本控制

登录之后,就可以像使用SVN一样对pdm文件进行版本控制。我们用一个简单的例子演示常见的团队协作场景。

初次Check In

架构师1(m1)在本地新建一个pdm后执行Check In,把pdm文件加入资料库。

登录到资料库后,查看当前用户的信息如下图

d9288342061279f7e4e3b989cdad4b1b

在Repository页面可以看到资料库中已经有的内容。当前用户可以看到我们提前建立的两个文件夹,如下图

b972925ccf802271f3272845b3466e62

在Local页面选择需要版本管理的pdm,右键菜单中选择Check In,如下图

2ee182ba944f85bd30d8f64de03853f4

在弹出窗口中选择我们准备放置pdm的资料库文件夹,输入必要的注释信息,如下图

f1f2412cf06e138b63bff161ec71a471

成功提交后,可以看到资料库指定文件夹中已经有了这个pdm,并且文件版本号是v1,如下图

f64c831c56965ce57ef628ea85e07b8c

(可选)默认情况下执行加入动作的用户自动获得这个pdm的Full权限,在这里可以对其他用户分配权限,如下图

3891ad5895fa9341a207625a74619aa0

初次Check Out

建模师2(m2)从资料库中Check Out指定的pdm到本地。

登录到资料库后,查看当前用户的信息如下图

18ce42f166a1b52532134c9a985167c2

在Repository页面可以看到资料库中已经有的内容。当前用户只可以看到一个文件夹,如下图

efb918330445044fb68888dab08ad3f2

在资料库中选择需要的pdm,然后右键菜单选择Check Out,如下图

f5d69793debcd202fa2752ba5bf77b62

在弹出窗口中选择指定的版本,默认情况下会自动选择最大版本,如下图

f3ae9bdd2e6b49f28083b30c22fe5fb4

成功后在Local页面就可以看到pdm,如下图

d14017dc2267e9d2eca7c17d8151ac41

同步最新版本

根据SCM规范,修改本地pdm之前,需要先执行一次Update,确保本地文件已经是最新版本。

在本地文件上选择右键菜单Update From Repository,如下图

16b696f6b2be4f1eaa94ea123131b209

默认情况下会弹出Merge窗口,因为本地文件和资料库文件完全一致,所有现在不需要进行操作。如下图

8cd032c746ab2ef90548e858fe6868b4

提交本地修改

建模师(m2)修改本地pdm后执行Check In,把本地修改的内容同步到资料库。

在Local页面选择修改后的pdm,右键菜单中选择Check In,在弹出窗口增加注释信息,如下图

c9d232afdf6b80d4d601ab22749cc2f0

默认情况下会弹出Merge窗口,本地文件和资料库文件有差异的地方会有特殊的符号,还可以在明细窗口看到详细的对比信息,如下图

584ce1149a23fcfa74f9e07377368eea

分类:
开发工具
标签: