PowerDesigner Repository进行版本管理

利用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连接数据库,所以提前安装对应的驱动程序。本文使用的是odbc-5.3.8-winx64这个版本。

安装PowerDesigner

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

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

建立资源库

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

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

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

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

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

首次连接资料库

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

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

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

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

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

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

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

用户和用户组

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

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

  • m1,m2
  • d1

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

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

目录和权限

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

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

安装ODBC驱动

同上

安装PowerDesigner

同上

配置资料库连接

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

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

首次连接资料库

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

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

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

版本控制

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

初次Check In

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

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

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

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

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

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

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

初次Check Out

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

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

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

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

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

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

同步最新版本

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

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

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

提交本地修改

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

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

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

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章