数据库也能做版本控制?它做到了_新版本

文 | 極光

数据库也能做版本控制?它做到了_新版本_02

上次给大家介绍了PDMan(Physical Data Model Manager) 如何配置数据库连接、逆向解析已有数据库以及关系图配置,都是我们数据模型设置中常用的功能。除了以上这些还有个很实用的数据库版本控制功能,一起来了解下。

模型版本控制

首先我们打开这个​​模型版本​​的标签页,可以看到下图,里面有三个功能 —— 同步配置、初始化基线和任务版本比较。

数据库也能做版本控制?它做到了_字段_03

先来看下这个​​同步配置​​是做什么的,单击会弹出窗,可以看到有两个数据表升级的选项:​​重建数据表​​和​​字段增量​​。这两个选项分别表示你在定义的每个版本导出SQL时,如果是​​重建数据表​​那就是导出全量SQL,如果是​​字段增量​​那会把生成你表结构修改的那部分。

数据库也能做版本控制?它做到了_字段_04

在我们实际使用中,我们有大量的存量数据,不可能每个版本都重新创建表结构,所以在这里选择​​字段增量​​就可以。

下面我们再看第二个功能,​​初始化基线​​​是把你现在已经做好的模型做为初始版本,在这里你可以把​​版本号​​​设置为v1.0.0,或者你认为能表示版本的文字都行。可以在​​版本描述​​中写上对这个版本进行简单描述。

数据库也能做版本控制?它做到了_初始化_05

单击​​确定​​后,版本就初始化完成了,第一个版本就是当前全量的模型数据。

数据库也能做版本控制?它做到了_初始化_06

初始化版本做好了,接下来我们对现在的版本进行修改,为了使大家直观的看到变化,这里就简单的修改如下:

修改用户表的状态字段

数据库也能做版本控制?它做到了_字段_07

修改了部门表的编码字段和名称的长度

数据库也能做版本控制?它做到了_初始化_08

然后我们再到​​模型版本​​标签页,点击​​保存新版本​​,这里要注意下因为之前我们已经初始化了版本,所以现在​​初始化基线​​按钮,分成了两个:保存新版本和重建基线。

数据库也能做版本控制?它做到了_字段_09

单击​​保存新版本​​会弹出版本信息框,在这里可以设置下新版本的版本号和版本描述,这里我设置的是v1.0.1。

数据库也能做版本控制?它做到了_初始化_10

单击​​确定​​生成新版本。现在我们能看到新版本出现在老版本的同一时间线的上面。我们能直观的看到两个版本之间的时间差。

数据库也能做版本控制?它做到了_新版本_11

当然不能只看时间,单击新版本就会弹出窗里,展示出了这个版本跟上一版本进行比较,多了或者说改变了哪些内容。

数据库也能做版本控制?它做到了_新版本_12

从图中我们可以很直观的看出,左边红框里是展示变化的信息,简单直观一看就懂。右侧红框里是模型改变的 SQL,我们可以导出到文件,或者 copy 出来都可以。因为我们数据库选的是 ​​MySql​​ ,所以这里只是展示了 ​​MySql​​ 的 SQL 语句。

任务版本比较

当然这里不只是可以和上一版本比较,还可以任意版本比较。为了说明这个功能,现在我们再修改一下字段内容。

数据库也能做版本控制?它做到了_初始化_13

修改完然后再创建一个新版本v1.0.2,如下图可以看到有三个版本了。

数据库也能做版本控制?它做到了_字段_14

单击这个新版本,我们先来看下这个版本和上一版本又有了哪些变化,如下图可以看到只是简单的两条:

数据库也能做版本控制?它做到了_字段_15

现在再回到​​模型版本​​标签页,单击那个​​任务版本比较​​的按钮,看下这个功能到底能有多强大。

数据库也能做版本控制?它做到了_新版本_16

数据库也能做版本控制?它做到了_新版本_17

上面弹出的版本比较的窗口,可以看到有两个下拉框可选,分别是初始版本和增量版本。初始版本就是以选择的这个版本为基准。

这里我们先来比较个简单的,拿v1.0.0和v1.0.1版本进行比较,可以看到这个和最开始创建v1.0.1看到的变化内容是一样的。

数据库也能做版本控制?它做到了_初始化_18

接下来我们再来比较下 v1.0.0和v1.0.2版本,可以看到这样跨版本比较,会列出两个版本之间所有的变化内容,这样我们就能很方便的看各版本之间改变的内容了。

数据库也能做版本控制?它做到了_字段_19

最后再来看下这个​​重建基线​​功能,单击弹出如下窗口,其实就是将你之前创建的版本全部清除,重新开始初始化一个新的版本。

数据库也能做版本控制?它做到了_字段_20

这里也算强提示了操作不可逆,实际使用中还是慎重操作。

总结

好了,到目前为止​​PdMan​​​的功能基本都给大家介绍完了,总的来说它还是一个很实用的工具,希望能给大家带来一些帮助。OK,今天就聊这些,。

PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!


老规矩,兄弟们还记得么如果感觉文章内容不错的话,记得分享让更多的人知道!

数据库也能做版本控制?它做到了_新版本_21数据库也能做版本控制?它做到了_新版本_22

数据库也能做版本控制?它做到了_字段_23